Uso de interrupciones en el LPC21xx
Cómo configurar las interrupciones en el LPC
1.Establecer las isr para irq y fiq
CW: void irq_handler(void) __attribute__ ((interrupt(“irq”)));
WA: void __attribute__ ((interrupt(“irq”))) irq_handler(void);
Para las fiq solamente cambiar “irq” por “fiq”
Esos nombres son obligatorios
2.Escribir el código de la rutina de la interrupción irq o fiq
void irq_handler(void){ ... }
void fiq_handler(void){ ... }
3.Seleccionar la función alterna al pin con PINSELx
4.Seleccionar si va a ser fiq o irq con VICIntSelect (0: irq, 1: fiq)
5.Habilitar la interrupción con VICIntEnable
6.Escoger la prioridad con VICVectCntlx (x: 0-15, 0 tiene la mayor prioridad)
Para las fiq se recomienda tener sólo una
7.Establecer la dirección de la callback con VICVectAddrx (x:0-15)
8.Escribir el código de la rutina que manejará la interrupción del periférico
void eint0(void){...}
El nombre de esta función es el mismo que se usa en el punto 5
9.Habilitar las interrupciones
CW: __armlib_enableirq();
WA:
10.Repetir del punto 3 al 8 para cada periférico
1.Establecer las isr para irq y fiq
CW: void irq_handler(void) __attribute__ ((interrupt(“irq”)));
WA: void __attribute__ ((interrupt(“irq”))) irq_handler(void);
Para las fiq solamente cambiar “irq” por “fiq”
Esos nombres son obligatorios
2.Escribir el código de la rutina de la interrupción irq o fiq
void irq_handler(void){ ... }
void fiq_handler(void){ ... }
3.Seleccionar la función alterna al pin con PINSELx
4.Seleccionar si va a ser fiq o irq con VICIntSelect (0: irq, 1: fiq)
5.Habilitar la interrupción con VICIntEnable
6.Escoger la prioridad con VICVectCntlx (x: 0-15, 0 tiene la mayor prioridad)
Para las fiq se recomienda tener sólo una
7.Establecer la dirección de la callback con VICVectAddrx (x:0-15)
8.Escribir el código de la rutina que manejará la interrupción del periférico
void eint0(void){...}
El nombre de esta función es el mismo que se usa en el punto 5
9.Habilitar las interrupciones
CW: __armlib_enableirq();
WA:
10.Repetir del punto 3 al 8 para cada periférico
Comentarios