I'm experiencing a strange behavior with the timer0 on my board, a
landtiger with a lpc1768.
The issue is the number MR0 of the counter in order to get a fixed
amount of delay and get an interrupt.
My configuration is as follow:
-) master clock source of 12Mhz (the crystal installed on the board)
and with the 'clock generation schematic' in debug i see the clock is
correctly chosen, the cclk is 100 Mhz and so the PCLK/1=100, PCLK/2
-)On my 'clock dividers window' the timer0 selection is on CCLK/4 and
-)the prescaler found in 'timer0' window is PR=0
-)my MR0 is 0x17D7840 (25*10e6) - it is found by multiplying
1s*25*10e6 1/s= 25*10e6 tick to count 1s.
When i debug the application inserting one breakpoint to the timer
activation (LPC_TIM0->TCR = 1) and one on the first instruction of
the IRQ_timer0Handler, the time shown the bottom right corner of
keil, is 10s.
But if i have selected a 25Mhz clock, no presclarer, why 10s?
More strange is that, when i debug in simulation, the timer count 1s.
But i cannot figure out what is going wrong with the board.
Can you please give me some advice about it? What am i missing?
For the "Clock Generation Schematic" view, the "Xtal (MHz)" value on the "Options for Target ... -> Target" tab needs to be correct. So, if you have a 12MHz crystal on your board, enter "12" there.
For the timing in the debugger, set the correct "Core Clock" in the "Settings for your debug driver -> Trace". So, if you have configured this to 100MHz, enter "100" there.
With this, the "Stop Watch" times should match the actual values.
View all questions in Keil forum