Hello,
I'm working with the MCB2370 board which runs a small program that puts the adc value onto an oled display and blinks a led every second.
I've created a 1 msec interrupt using timer0 which determines which task should be started, handling the led or updating the display.
when I run the program it SOMETIMES hangs and the display isn't being updated. But the led still blinks which means that the timer interrupt is still working.
When I run the debugger I can see that the SWI_handler is being called. But i'm not using software interrupts.
How can I debug this problem and see what causes the program to hang?!
Below is the code of my timer interrupt.
Kind regards, Sander Wiggers
void timer0_isr(void) __irq { static uint8 cnt_10ms = 0; T0IR = 0x01; /* Clear Timer0 interrupt */ IENABLE; /* handles nested interrupt */ if(tmr_data.proc_list[cnt_10ms].tmr_proc_active) tmr_data.proc_list[cnt_10ms].tmr_proc(); cnt_10ms++; if(cnt_10ms == MAX_TMR_PROC) cnt_10ms = 0; IDISABLE; VICVectAddr = 0; /* Acknowledge interrupt */ }
View all questions in Keil forum