Controller : LPC1517
IDE : MCUXpresso
I'm using SCTimer 3 for using delay for ms, it is working for 60 delays, and then interrupt stops without any reason.
SCT3 IRQ Handler:
LPC_SCT3->EVFLAG = 0x01;
count++;
Delay function:
SCT3_START_ms;
while(count<period);
SCT3_STOP;
SCT3_START_ms definition:
count=0;
LPC_SCT3->CTRL_U |= (1<<2);
LPC_SCT3->MATCH[0].U=(SystemCoreClock/1000-1);
LPC_SCT3->MATCHREL[0].U=(SystemCoreClock/1000-1);
LPC_SCT3->CTRL_U &= ~(1<<2);
this worked normally for upto 59 counts, and then MATCH0 turned from normal value to 0xffff, also the SystemCoreClock became 0.
is there any specific reason for this weird change?
Thank you
Solved! Go to Solution.
The above problem solved as SystemCoreClock is not globally initialized and hence, due to memory optimization the SystemCoreClockbecame zero.
The above problem solved as SystemCoreClock is not globally initialized and hence, due to memory optimization the SystemCoreClockbecame zero.
Either declare SystemCoreClock globally, or call GetSystemCoreClock() function.