I am writing a program to use EXT_INT5 interrupt. However, it seems not work. Here is my code:
; Vectors_intr.asm Vector file for interrupt INT11
.global _vectors ;global symbols
.global _c_int00
.global _vector1
.global _vector2
.global _vector3
.global _vector4
.global _vector5 ; for INT 5
.global _vector6
.global _vector7
.global _vector8
.global _vector9
.global _vector10
.global _isrDetection
.global _vector12
.global _vector13
.global _vector14
.global _vector15
.ref _c_int00 ;entry address
VEC_ENTRY .macro addr ;macro for ISR
STW B0,*--B15
MVKL addr,B0
MVKH addr,B0
B B0
LDW *B15++,B0
NOP 2
NOP
NOP
.endm
_vec_dummy:
B B3
NOP 5
.sect ".vectors" ;aligned IST section
.align 1024
_vectors:
_vector0: VEC_ENTRY _c_int00 ;RESET
_vector1: VEC_ENTRY _vec_dummy ;NMI
_vector2: VEC_ENTRY _vec_dummy ;RSVD
_vector3: VEC_ENTRY _vec_dummy
_vector4: VEC_ENTRY _vec_dummy
_vector5: VEC_ENTRY _vec_dummy ;ISR address
_vector6: VEC_ENTRY _vec_dummy
_vector7: VEC_ENTRY _vec_dummy
_vector8: VEC_ENTRY _vec_dummy
_vector9: VEC_ENTRY _vec_dummy
_vector10: VEC_ENTRY _vec_dummy
_vector11: VEC_ENTRY _isrDetection
_vector12: VEC_ENTRY _vec_dummy
_vector13: VEC_ENTRY _vec_dummy
_vector14: VEC_ENTRY _vec_dummy
_vector15: VEC_ENTRY _vec_dummy
In the main() program, the codes looks like:
GPIO_Config GPIOcfg={
GPIO_FMKS(GPGC, GP0M, GPIOMODE) |
GPIO_FMKS(GPGC, GPINT0M, PASSMODE) |
GPIO_FMKS(GPGC, GPINTPOL, LOGICTRUE) |
GPIO_FMKS(GPGC, LOGIC, ORMODE) |
GPIO_FMKS(GPGC, GPINTDV, DELTAMODE),
GPIO_FMKS(GPEN, GPXEN, OF(0)),
GPIO_FMKS(GPDIR, GPXDIR, OF(0)),
GPIO_FMKS(GPVAL, GPXVAL, OF(0)),
GPIO_FMKS(GPDH, GPXDH, OF(0x00)),
GPIO_FMKS(GPHM, GPXHM, OF(0x00)),
GPIO_FMKS(GPLM, GPXLM, OF(0x0)),
GPIO_FMKS(GPPOL, GPINTXPOL, OF(0))
};
hGpio = GPIO_open(GPIO_DEV0, GPIO_OPEN_RESET);
GPIO_config(hGpio, &GPIOcfg);
IRQ_setVecs(vectors);
IRQ_globalDisable();
IRQ_globalEnable(); /* Globally enable interrupts */
for(i=0;i<32;i++)
{
IRQ_disable(i); /* Disable and clear all IRQ events */
IRQ_clear(i); /* except reset and NMI interrupts */
}
IRQ_map(IRQ_EVT_EXTINT4, 11);
IRQ_reset(IRQ_EVT_EXTINT4);
IRQ_enable(IRQ_EVT_EXTINT4);
I've enabled the interrupt individually, also set up the interrupt in the vectors_intr.asm file. The program gets compiled with no errors. Did I configured the GPIO incorrectly?
I am very grateful for your any advice or help?