Board logo

标题: 帮忙看个中断程序,谢谢啦 [打印本页]

作者: darkhero    时间: 2005-9-26 21:54     标题: 帮忙看个中断程序,谢谢啦

#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include "sys/alt_irq.h"

volatile int edge_capture;
void led_test();

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);
}

static void init_button_pio()
{
  void *edge_capture_ptr=(void*)&edge_capture;
  IOWR_ALTERA_AVALON_PIO_IRQ_MASK(PIO_0_BASE,0xf);
  IOWR_ALTERA_AVALON_PIO_EDGE_CAP(PIO_0_BASE,0x0);
  alt_irq_register(PIO_0_IRQ,edge_capture_ptr,handle_button_interrupts);
}

int alt_main (void)
{
alt_u8 led = 0x2;
  
while(1)
{   
    init_button_pio();
    IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE, led);
    if(edge_capture!=0)  
     {
        led_test();
     }
}
  return 0;
}
   
void led_test()
{
  switch(edge_capture)
  {
  case 0x1:
  IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE, 0x1);
  case 0x2:
  IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE, 0x2);
  default:
  IOWR_ALTERA_AVALON_PIO_DATA(PIO_1_BASE, 0x3);
  }
}


一个中断程序,用按键来产生中断,中断服务程序是另外的灯亮。现在程序编译下载均无错误,但是按键按下没有反应,不知是什么原因。

高手帮忙看看可能什么原因造成的。ps:引脚分配没有问题。




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