Я пытаюсь понять инициализацию АЦП на 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 */
}
Задача ещё не решена.
Других решений пока нет …