OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 423|回复: 0

第三课:定时器中断实现跑马灯

[复制链接]

13

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2026-3-22
在线时间
17 小时
发表于 2026-8-8 10:18:34 | 显示全部楼层 |阅读模式
第二课中在主程序中通过延时+循环实现跑马灯效果,这种方案优点是简单明了。
一般来说,对于定期执行的任务一般放在定时器中,可由定时器中断来执行。本节课向大家演示YXRA-SDK是如何实现定时器中断实现跑马灯效果的。
注意:只要是在中断中执行的程序,一定要简短。如果中断程序执行时间过长,可能导致的后果是:1、中断可能"连续触发",导致ISR被反复执行,主循环根本得不到运行时间;2、象定时器计数这样的中断会出现误差,功能执行频率不对;3、主程序分不到运行时间,主程序卡住。如果中断程序无法在短时间内完成,可记录当前状态,由主程序来执行。
下面开始一步一步的实现这个功能。
首先在设备视图中添加控制LED的关联的端口Px,官方实验箱是P4.0+P6.0。我们将P4和P6放到设备视图中,设置成准双向口模式,并赋上初值0xE7,让中间的两颗LED能亮。
接着在设备视图中添加定时器0(其他定时器也可以),设置定时器自动装载初值,以及分频,记住一定要启用中断。一般将间隔时长控制在100ms左右。定时器实现跑马灯这个功能中,各位开发者不要纠结如何严格计算出时间。如果用到定时器并严格要求时,系统会计算并匹配(但不会自动更改定时器的属性),通过配置校验功能可以看到。
接下来就是在定时器中断中添加LED循环的程序,双击设备视图中的定时器0,打开程序,在handleInterrupt()方法中添加。
功能已经开发完成,是不是非常快捷。YXRA-SDK不仅快捷,更会在系统层面上添加检测机制,尽量为开发者减少配置冲突。
stcproject.zip为以上功能的项目,可在YXRA-SDK中直接导入即可。如果想深入了解定时器,在设备视图的定时器0上右键菜单中点击开发文档,也可以在帮助菜单中打开完整的帮助文档,定位到定时器章节。



stcproject.zip

21.78 KB, 下载次数: 0

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-8-22 21:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表