[PIC32] configTICK_RATE_HZ and tick hook

steeljans wrote on Monday, February 20, 2012:

I have a little problem using the tick hook.
I set configTICK_RATE_HZ to 200 and I want to execute some istructions every 2 seconds.
My tick hook method is the follow:

void vApplicationTickHook(void)
static unsigned int tickCount = 0;

if (tickCount >= (2 * configTICK_RATE_HZ))
tickCount = 0;

                // my code

The problem is that “mycode” is executed every 1 seconds.
If i want to execute it every 2 seconds i must change my condition to:
if (tickCount >= (4 * configTICK_RATE_HZ)) .
I don’t understand why.
Thanks in advance.

rtel wrote on Monday, February 20, 2012:

I would assume your tick interrupt is executing at twice the frequency you think it is.  Have you verified the tick frequency you are using?  The simplest method, if you have the equipment, is to simply pulse an GPIO output from the tick hook and measure it on an oscilloscope.

Consider using a software timer to implement the same functionality.


steeljans wrote on Friday, February 24, 2012:

Thanks a lot for the answer!