Runtime stats with 16bit timer

anonymous wrote on Sunday, March 13, 2011:

Hello all,

I’m currently running FreeRTOS on a STM32. I’m having a problem regarding the run time stats. The timers on this micro controller are all 16 bit and this is causing the run time results to be completely wrong.

Is there an option to specify that the timer is coded in 16bits?


rtel wrote on Sunday, March 13, 2011:

Yes - the most common way is to configure the 16 bit timer to generate an interrupt each time it overflows (or reaches its maximum count if an overflow interrupt is not available), then have the interrupt handler simply count the number of overflows.

You than have two 16 bit numbers, one is the current timer counter value, and the other the number of overflows.  You can generate a 32 bit number from the two by having the count of overflows being the two highest bytes in the 32 bit number, and the current counter value as the two lowest bytes.  This also has a really low interrupt processing overhead.

Actual code examples are provided in both the PIC32 and RX600 editions of the FreeRTOS tutorial book.


anonymous wrote on Monday, March 14, 2011:

That was going to be plan B. Thanks for the prompt reply. It working correctly now.