📄 button_test.c
字号:
/**************************************************************程序说明 :BUTTON 处理和中断 实验类 型 :Nios II作 者 :柳军胜公 司 :杭州自由电子科技 :http://www.freefpga.com电 话 :0571-85084089修 改 :日期时间 :20060522说 明 : 检测BUTTON下降沿,触发中断,点亮相应的LED。**************************************************************/#include <stdio.h>#include <io.h>#include <system.h>/*********************************************函数名:button_irq功 能:button中断处理函数输 入:context:相关内容指针,中断号返 回: 备 注: 读取相应BUTTON数据,点亮相应LED**********************************************/void button_irq(void *context,alt_u32 interrupt){ int iRet; unsigned int data; unsigned int seg; /* 读取边沿捕获寄存器值 */ data=IORD(BUTTON_PIO_BASE,0x03); /* 点亮相应的LED */ IOWR(LED_PIO_BASE,0x00,data); /* 数码管显示 */ switch(data){ case 1: seg=1; break; case 2: seg=2; break; case 4: seg=3; break; case 8: seg=4; break; } IOWR(SERIAL_SEGMENT_0_BASE, 0x00,seg); /* 清除边沿捕获寄存器 */ IOWR(BUTTON_PIO_BASE,0x03,0x00); }#include <stdio.h>int main(){ unsigned int data; printf("BUTTON 中断实验!\n"); /* 数码管清0 */ IOWR(SERIAL_SEGMENT_0_BASE, 0x00,0); IOWR(SERIAL_SEGMENT_0_BASE, 0x01,0); IOWR(SERIAL_SEGMENT_0_BASE, 0x02,0); IOWR(SERIAL_SEGMENT_0_BASE, 0x03,0); /* 开放4BIT BUTTON的中断屏蔽 */ IOWR(BUTTON_PIO_BASE,0x02,0x0f); /* 清除边沿捕获寄存器 */ IOWR(BUTTON_PIO_BASE,0x03,0x00); /* 注册中断处理函数 */ if (alt_irq_register( BUTTON_PIO_IRQ, NULL,button_irq)) { printf("alt_irq_register error\n"); return -1; } while(1); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -