Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
April 4, 2007, 6:55 am

hiiii
i am using ARM LPC2138 for my application.For one of my devices i am
using its external interrupt pin .i am compliling my code in ARM
mode.i am able to compile my code in KEIL as well as GCC without any
warning.i am printing some values in my ISR routine.
the problem is:
After executing the isr the system halts. Please suggest what could be
the problem.
i am initialising my external interrupt registers EXTMODE & EXTPOLAR
to 0x00
and interrupt vector registers as follows:
VICINTSELECT &= ~0x00004000;
VICINTCTRL14 = ( unsigned long
int )external_isr ;..................address of external isr routine
VICINTCTRL14 = 0x0000002E ;
VICINTENABLE |= 0x00004000;
in my isr i m printing some random values and resetting the flags and
interrupt vector address as follows:
EXTINT |= 0x01 ;
VICVECTADDR = 0x00000000; resetting the interrupt vector address to 0
Please suggest what could be the problem.
thank you
i am using ARM LPC2138 for my application.For one of my devices i am
using its external interrupt pin .i am compliling my code in ARM
mode.i am able to compile my code in KEIL as well as GCC without any
warning.i am printing some values in my ISR routine.
the problem is:
After executing the isr the system halts. Please suggest what could be
the problem.
i am initialising my external interrupt registers EXTMODE & EXTPOLAR
to 0x00
and interrupt vector registers as follows:
VICINTSELECT &= ~0x00004000;
VICINTCTRL14 = ( unsigned long
int )external_isr ;..................address of external isr routine
VICINTCTRL14 = 0x0000002E ;
VICINTENABLE |= 0x00004000;
in my isr i m printing some random values and resetting the flags and
interrupt vector address as follows:
EXTINT |= 0x01 ;
VICVECTADDR = 0x00000000; resetting the interrupt vector address to 0
Please suggest what could be the problem.
thank you

Re: problem in external interrupt handling in ARM LPC2138

I don't think you want the VIC Vector Address set to 0x0000000 - that is
the reset vector. You are also setting programming the Interrupt Control
register with your vector to your handler and then overwriting it with
the real control word. Perhaps you might want to look at putting the
vector of your handler into the vector register for interrupt 14?
Site Timeline
- » "MSC" manufacturer?
- — Next thread in » Embedded Programming
-
- » Where to get Atmel avr32 promo board ?
- — Previous thread in » Embedded Programming
-
- » Using C preproc to uniquely identify structure members
- — Newest thread in » Embedded Programming
-
- » Подвох
- — The site's Newest Thread. Posted in » Electronic Circuits (Russian)
-