Arduino101-Timers与ArduinoTimer101定时器中断示例
Arduino 的定时器和中断用得好,多项目能立马高级不少。
压缩包里的两个项目Arduino101-Timers.zip
和ArduinoTimer101.zip
,就是专门拿定时器和中断做文章的。讲真,定时器用来做周期性任务,比如隔 500ms 闪一下 LED,合适;中断嘛,像是有事打断你,比如按钮一按立马响应,效率高还不耽误主逻辑。
定时器在 Arduino 里是硬件级别的,Timer0
、Timer1
、Timer2
这些都有各自的特性,比如精度不同、支持的模式不一样。用好了,啥 PWM 调光、周期采样、定时控制都不在话下。
中断就更妙了,比如你连了个外部按钮,用attachInterrupt()
一设定,按一下马上响应。还有那些定时器中断,用来跑ISR
(中断服务函数),做一些高优先级的任务,比如实时数据采集,挺实用的。
项目代码里应该已经写好了定时器初始化、分频设置、中断注册这些内容,照着改就能跑。不用从零开始,省心多了。ISR记得别写太重的逻辑,不然主程序卡得你想哭。
顺带一提,如果你对任务调度、PWM 这些感兴趣,可以顺着下面几个链接看看:
如果你正在搞 Arduino 项目,是对精确控制感兴趣,这个资源挺值得一看。代码清楚,逻辑也好理解,调试起来还比较顺手。
下载地址
用户评论