Q:怎样编写汇编语言代码配置使用按键和定时器中断?
A:本次实验同样设置Nios II堆栈指针,并使能两个中断源:按键(KEY)和间隔定时器(Interval Timer)。主程序中调用CONFIG_TIMER和CONFIG_KEYS子程序对按键和间隔定时器进行配置,使间隔定时器产生某个周期的中断。
主程序会执行一个无限循环将全局变量COUNT的值写到DE2-115开发板的红色LED;exception_handler.s为间隔定时器的中断服务程序,实现COUNT的值每隔0.25s增加1;另外还需创建按键中断服务程序key_isr.s和定时器中断程序interval_timer.s。
烧录程序到DE2-115开发板上看到实验现象:红色LED上显示的计数值每隔0.25秒递增1,LEDR[17:0]从全熄灭到全点亮状态循环显示;按下KEY[3:0]任意一个按键会停止计数,再次按下任意一个按键会继续计数。