Altera_Forum
Honored Contributor
20 years agothe problem of the PIO interrupts
Hello,everybody!
My program can't get into the interrupt fuction. the code like is the following.is there any questions? and I can't use a main() but alt_main(),if I use main() the nisoII IDE show me many errors;I use a CPU /e. CODE: # include "system.h"# include "altera_avalon_pio_regs.h"# include "alt_types.h"# include "sys/alt_irq.h" volatile int edge_capture; void Sirq(void * context,alt_u32 id) { IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_SWITCH_BASE, 0); IOWR_ALTERA_AVALON_PIO_DATA(PIO_LED1_BASE,IORD_ALTERA_AVALON_PIO_DATA(PIO_SWITCH _BASE)); } int main (void) __attribute__ ((weak, alias ("alt_main"))); int alt_main (void) { alt_irq_register(PIO_SWITCH_IRQ,(void *)0,Sirq); IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_SWITCH_BASE, 0); IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_SWITCH_BASE, 0); IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_SWITCH_BASE, 0xff); while (1) { } return 0; } Thanks~!