PIC24/dsPIC timer period is 1 clock too long

From the “Timers” Reference Manual sections for these devices (Example 11-1 and Figure 11-4 in all manuals) we can see that prvSetupTimerInterrupt() in port.c should be changed from:
const unsigned long ulCompareMatch = ( configCPU_CLOCK_HZ / portTIMER_PRESCALE ) / configTICK_RATE_HZ;
to:
const unsigned long ulCompareMatch = ( configCPU_CLOCK_HZ / portTIMER_PRESCALE ) / configTICK_RATE_HZ - 1;

PIC24/dsPIC timer period is 1 clock too long

Thanks for the feedback.  Its not the first time I have made that mistake, and I’m sure it won’t be the last. However, I’m not sure your solution is completely accurate because of the operator precedence.  Should it not be: const unsigned long ulCompareMatch = ( ( configCPU_CLOCK_HZ / portTIMER_PRESCALE ) / configTICK_RATE_HZ ) – 1; If you agree with this I will change it in SVN straight away so it does not get lost in the crowds. Regards.

PIC24/dsPIC timer period is 1 clock too long

Multiplicative operators, of which ‘/’ is one, have higher precedence than additive operators, so the added parentheses are unnecessary.  However, explicitness is always good in my book, so I say leave them in the way you have it.

PIC24/dsPIC timer period is 1 clock too long

… the SVN copy has been updated. Regards.