I am using some of the Timers on our product for fan tachometers. I configure the timers using the split, 16-bit capture counters:
TimerConfigure(TIMER0_BASE, TIMER_CFG_16_BIT_PAIR|TIMER_CFG_A_CAP_COUNT|TIMER_CFG_B_CAP_COUNT);
TimerConfigure(TIMER1_BASE, TIMER_CFG_16_BIT_PAIR|TIMER_CFG_A_CAP_COUNT);
And then for each timer and channel, I do the following:
TimerControlEvent(timerBase, timer, TIMER_EVENT_POS_EDGE); // Capture on rising edge
TimerLoadSet(timerBase, timer, 0xFFFF); // Load timer with largest 16-bit value
However, if I load with 0xFFFF, the timers never start counting, even when I know the fans are spinning and the GPIO is receiving events. Each Timer TimerValueGet() is always 0xFFFF. If I reduce the load value to 0xFFFE, everything works. The timers start to count down, and then wrap back to 0xFFFE when they hit zero. The documents don't mention the valid range for the TimerLoadSet.
I'm using :
// $TI Release: F28M36x Support Library v207 $