Хочу подсчитать количество импульсов, которые считаю
ногой контроллера и какой правильно поставить прескалер.
Пытаюсь использовать такой режим: Input Edge-Count Mode - режим 9.3.2.2
CODE
// Configure PIN_50 for TIMERCP5 GT_CCP00
MAP_PRCMPeripheralClkEnable(TIMER_PRCM, PRCM_RUN_MODE_CLK);
MAP_PRCMPeripheralReset(TIMER_PRCM);
MAP_PinTypeGPIO(PIN_50, PIN_MODE_0, false);
MAP_GPIODirModeSet(GPIOA0_BASE, 0x01, GPIO_DIR_MODE_IN);
MAP_PinTypeTimer(TIMER_PIN, TIMER_MODE);
MAP_PinConfigSet(TIMER_PIN, PIN_TYPE_STD_PD, PIN_STRENGTH_6MA);
#define TIMER_BASE TIMERA0_BASE
// Прескалер
MAP_TimerPrescaleSet(TIMER_BASE, TIMER_A, 0);
MAP_TimerPrescaleMatchSet(TIMER_BASE, TIMER_A, 0);
// Set the reload value
MAP_TimerLoadSet(TIMER_BASE, TIMER_A, 51200);
MAP_TimerMatchSet(TIMER_BASE, TIMER_A, 51200);
// Configure the timer in Input Edge-Count Mode - режим 9.3.2.2
MAP_TimerConfigure(TIMER_BASE, TIMER_CFG_SPLIT_PAIR | TIMER_CFG_A_CAP_COUNT_UP);
// Считаем импульсы по обеим фронтам
MAP_TimerControlEvent(TIMER_BASE, TIMER_A, TIMER_EVENT_BOTH_EDGES);
TimerValueSet(TIMER_BASE, TIMER_A, 0);
В даташите написано что таймер 16-ти битный, то есть может считать до 65535
и его можно расширить на 8 бит, если использовать прескалер
Мне нужно подсчитать до 512000, и далее чтобы таймер сбрасывался после этого в 0 и опять начинал считать
но никак не могу заставить таймер считать как мне нужно.
Кто подскажет как это сделать правильно?