新闻  |   论坛  |   博客  |   在线研讨会
FPGA开发板DIY过程(九)
mmqm | 2012-10-12 18:34:46    阅读:1038   发布文章



继续学习Nios II,进行key中断实验,遇到些问题,需要深入研究。





代码:
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include "sys/alt_irq.h"
#include "sys/alt_alarm.h"
#include "unistd.h"

#define led *(volatile unsigned char *) LED_BASE
#define key *(volatile unsigned char *) KEY_BASE

void Key_ISR(void* context, alt_u32 id);
void Key_Init();
//alt_u8 data;

//按键中断服务函数
void Key_ISR(void* context, alt_u32 id)
{
led = key;
while(key != 0xff);
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY_BASE, 0x00); //清中断捕获寄存器
}

//按键中断初始化
void Key_Init()
{
alt_irq_register(KEY_IRQ, 0, Key_ISR); //注册中断函数
IOWR_ALTERA_AVALON_PIO_IRQ_MASK(KEY_BASE, 0xff); //开KEY中断
IOWR_ALTERA_AVALON_PIO_EDGE_CAP(KEY_BASE, 0x00); //清中断捕获寄存器
}

int main(void)
{
Key_Init();
led = 0x55;
while(1);
return 0;
}

效果:按键中断,点亮对应的led

视频:http://v.qq.com/boke/page/b/4/q/b0106bte24q.html

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客