Teensy 3.1 の ARM Cortex M4 MK20DX256VLH7 で ADC を初期化する方法を理解しようとしています。以下の記号が何を意味するかについて、用語と関連する検索用語に興味があります。&= ~(3<<18)
、これはビット単位の NOT(3 ビット単位の左シフト 18) のビット単位の AND として解釈されますが、私にとってはほとんど意味がありません。BIN 11
括弧内は へのシフトと解釈しBIN 11000000000000000000
ます。PINMODE1 へのポインター逆参照が発生していて (これは私には少しあいまいです)、チップ上のピン 25 を ADC 入力として初期化していることを理解していますか? これを解析する能力にまったく自信がありません。お知らせ下さい。お時間をいただきありがとうございます。
void ADC_Init (void) {
LPC_PINCON->PINMODE1 &= ~(3<<18); /* P0.25 */
LPC_PINCON->PINMODE1 |= (1<<18); /* has neither pull-up nor pull-down */
LPC_PINCON->PINSEL1 &= ~(3<<18); /* P0.25 is GPIO */
LPC_PINCON->PINSEL1 |= (1<<18); /* P0.25 is AD0.2 */
LPC_SC->PCONP |= (1<<12); /* Enable power to ADC block */
LPC_ADC->ADCR = (1<< 2) | /* select AD0.2 pin */
(4<< 8) | /* ADC clock is 25MHz/5 */
(1<<16) | /* Burst mode */
(1<<21); /* enable ADC */
// LPC_ADC->ADINTEN = (1<< 8); /* global enable interrupt */
// NVIC_EnableIRQ(ADC_IRQn); /* enable ADC Interrupt */
}