I found a BUG in IAR LPC2129 PORT
Salam,
in port.c
ulCompareMatch = configCPU_CLOCK_HZ / configTICK_RATE_HZ;
That’s wrong cause the clock of the peripherals (include Timer0) is NOT CPU Clock (CCLK) but it’s PCLK.
and
PCLK = CCLK / VBP Divider
At reset for LPC2129 VBP Divider = 4
So The above line must be
ulCompareMatch = (configCPU_CLOCK_HZ /4 ) / configTICK_RATE_HZ;
I found this bug when i was trying to blink a led every second using vTaskDelayUntil
Here is my working code.
static void vTaskCode(void *pvParameters)
{
portTickType xLastWakeTime;
const portTickType xFrequency = 1000;
xLastWakeTime = xTaskGetTickCount();
for (;;) {
Led_Toggle();
vTaskDelayUntil( &xLastWakeTime, xFrequency );
}
}
Bye
Eng. Amr Ahmed
EGYPT
I found a BUG in IAR LPC2129 PORT
I forgot to mention that configTICK_RATE_HZ must be configure to 1000 in freeRTOSconfig.h to use the above task to blink the led every 1 SEC :-)
Enjoy
Amr Ahmed
EGYPT
I found a BUG in IAR LPC2129 PORT
I think, as downloaded, the line should actually be:
ulCompareMatch = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) – 1;
cpu clock being defined to the correect value for the equation.
You change the value or use different hardware?
I found a BUG in IAR LPC2129 PORT
AS DOWNLOADED THE LINE IS
/* Calculate the match value required for our wanted tick rate. */
ulCompareMatch = configCPU_CLOCK_HZ / configTICK_RATE_HZ;
THAT IS NOT RIGHTTTTTTTTTTTT
I found a BUG in IAR LPC2129 PORT
AS DOWNLOADED
ulCompareMatch = configCPU_CLOCK_HZ / configTICK_RATE_HZ;
This is not right !!!
I use Olimex board (LPC2129)
So configCPU_CLOCK_HZ = 14745600 (crystal value)
I didn’t use the PLL.
#define configCPU_CLOCK_HZ ( ( unsigned portLONG ) 14745600 )
BYE
I found a BUG in IAR LPC2129 PORT
It is right if you are using the same software and hardware as the demo with no modifications at all. I know because I can time the LED’s flashing and they are exactly correct.
I think you are making an assumption as to what configCPU_CLOCK_HZ means. This should be set to the frequency as used by the timer which may but probably will not be the same as some other clocks on the system.
I found a BUG in IAR LPC2129 PORT
That’s right man.
configCPU_CLOCK_HZ must be the clock of the Timer.
So configCPU_CLOCK_HZ must be
configCPU_CLOCK_HZ = configCPU_CLOCK_HZ / VBP Divider
Please look to the datasheet
Bye
AmR Ahmed
EGYPT