1

我试图了解在 Teensy 3.1 上初始化 ARM Cortex M4 MK20DX256VLH7 上的 ADC。我对以下符号的含义和相关搜索词感到好奇。&= ~(3<<18),我将其解释为按位非(3 位左移 18)上的按位与,对我来说意义不大。我将括号内的内容解释为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               */
}
4

0 回答 0