We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Dear all,
I use Keil RTX and want to use the EINT3. I initialized the IRQ as followed:
PINSEL1 |= (1<<9); PINSEL1 |= (1<<8); EXTMODE |= (1<<3); EXTPOLAR &= ~(1<<3); VICVectAddr14 = (unsigned)UartISR; VICVectCntl14 |= (1 <<17); VICIntEnable = ( 1 << 17 );
Now the problem is that the system jumps to the
os_def_interrupt
in the RTX_Config.c and not to my UartISR-Funktion. Is this the normal way to handle interrupts with RTX? As I seen the Traffic Sample they do not use the os_def_interrupt. Is there any chance to jump directly to my UartISR?
Big Thanks for the help,
Christian
one of the reasons for this might be a spurious interrupt. not very likely, but what device are you using? The LPC2400 family cannot suffer from spurious interrupts anymore.
hey Tamir,
I use a LPC2294.
just found out, that the VICDefVectAddr is set to the os_def_interrupt function. I think that my problem is not an RTX problem. It seems that the ISR does not know my IRQ vector...
Could there be a problem in my initialisation?
normally, you register the default vector to catch spurious interrupts that might originate from the interaction between your processor and VIC. this happens MOSTLY when working with interrupt driven serial port and RTC (I think). If your interrupt is not invokes at all then it is probably an initialization issue.
just found the mistake. the initialisation of VICVectCntl14 must be:
VICVectCntl14 = 0x31;