首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

nios II 中的中断问题

nios II 中的中断问题

各位大虾帮忙看一下一个 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;
}
不好意思说错了,上面的中断号应该是 0
问题找到了,原来是引脚悬空导致的中断口电平不确定引起的
返回列表