Board logo

标题: nios II 中的中断问题 [打印本页]

作者: jkpol    时间: 2007-8-21 16:40     标题: 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;
}

作者: jkpol    时间: 2007-8-21 18:57

不好意思说错了,上面的中断号应该是 0
作者: jkpol    时间: 2007-8-21 22:32

问题找到了,原来是引脚悬空导致的中断口电平不确定引起的

作者: 尘埃落定    时间: 2007-8-26 10:01






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0