This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

strange swi problems

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 */
}