I try to use a FTM counter to generate interruption at a desired time. Each time the interrup falls, I want to settle the next time (relative) it raises again. Interrupt can also be forced asynchronuously by setting the relative time very close to the current counter value.
I need two channels like because I want this beavior 2 times, I used OC_pal with a disable output.
This normally allows me to generate interrupt when CnV value matches counter values CNT. Counter values shall count up to Mod values and restart (0-0xFFFF) continuously.
I did the following test with a counter at 1Mhz, at each interrupt I toggle a pin to check timing at scope.
- I use in the interrupt handler, OC_SetCompareValue(.., OC_ABSOLUTE_VALUE) to set a fixed value of 1000. I expect a period of 65,535 ms (one match per period of timer). Instead I have a period of arround 1ms? Why?
Is the CNT reload initial value when loading CnV register? how to avoid that? (I want the counter to always count).
Thanks a lot,