Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
19 years ago

the 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~!

3 Replies