第49篇 汇编语言实现中断<五>

Q:怎样修改定时器产生的中断周期?

A:在上一期实验的基础上,可以修改按键中断服务程序,实现红色LED上的计数值递增的速率,主程序和其余代码文件不用修改。

实现以下功能:按下KEY0时,COUNT变量的值保持不变或保持0.25s递增1;当按下KEY1时,COUNT值递增的速率会根据SW0设定的值增加或减少,若SW0为1,则速率加倍,若SW0为0,则速率减半。通过在按键中断服务程序中停止间隔定时器,修改定时器中用到的load值,然后重新启动定时器来实现这个功能。

image-20240612163905552

修改过的程序烧录到DE2-115开发板后,相比上一期的实验新实现的功能现象:

  • 如果SW0处在UP位置,按下KEY1,LEDR[17:0]上的计数速率会加倍。例如,第一次按下KEY1,计数值每隔0.125秒(即由默认的0.25s速率加倍)递增1,第二次按下KEY1,计数速率再次加倍到每隔0.0625秒递增1。

  • 如果SW0处在DOWN位置,按下KEY1,计数速度会减半。例如,第一次按下KEY1,计数值每隔0.5秒(即由默认的0.25s速率减半)递增1,第二次按下KEY1,计数速率再次加倍减半到每隔1秒递增1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值