各位大虾帮忙看一下一个 nios2 的中断程序,我是用网上的一些参考程序改的,但是无法进入中断服务程序
调试的时候 初始化中断后,status=0x1,ienable=0x1(中断号为32),但是就是进不了中断程序。是不是我的初始化有问题?
//定义了一个8bit 的端口PIO_0 接收中断
#include "sys/alt_irq.h"
alt_u8 led = 0xf0; volatile int edge_capture;
static void handle_button_interrupts( void* context,alt_u32 id) { volatile int* edge_capture_ptr = (volatile int*) context; *edge_capture_ptr = IORD_ALTERA_AVALON_PIO_EDGE_CAP(PIO_0_BASE); IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_0_BASE, 0); led = 0x55; }
void int_ini() { IOWR_ALTERA_AVALON_PIO_DIRECTION(PIO_0_BASE, 0x00); IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_0_IRQ, 0xff); IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_0_IRQ, 0x00); alt_irq_register(PIO_0_IRQ, (void*) &edge_capture,handle_button_interrupts); edge_capture = 0; } void delay(void) { volatile int i=0; while (i<20000) i++; }
int main (void)
{ int_ini(); IOWR_ALTERA_AVALON_PIO_DATA(LCD_DATA_BASE,0xf0); while(1) { IOWR_ALTERA_AVALON_PIO_DATA(LCD_DATA_BASE,led); delay(); }
return 0; }
|