Инициализировать контроллер AD в режиме IRQ

Я пытаюсь понять инициализацию АЦП на ARM Cortex M4 MK20DX256VLH7 на Teensy 3.1. Мне интересно узнать о терминологии и соответствующих поисковых терминах относительно того, что означают символы ниже. &= ~(3<<18), который я интерпретирую как побитовое И для побитового НЕ (3 битовых сдвига влево 18), очень мало значит для меня. Я понимаю, что внутри скобок, BIN 11 переходит к BIN 11000000000000000000, Я понимаю, что разыменование указателя происходит с PINMODE1 (что немного нечетко для меня) и что он инициализирует вывод 25 на чипе как вход АЦП? Я совсем не уверен в своей способности разобрать это. Пожалуйста, порекомендуйте. Спасибо за ваше время.

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               */
}

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]