462_Arduino LED不用delay功能的闪烁例程分析

博客分享Arduino通用例程学习笔记,重点分析了无需delay的LED闪烁例程。该例程利用计时器判断间隔,不会阻塞其他节点运行。作者将管脚切换到数字管脚3测试,看到闪烁效果。还提到时间获取函数millis及32bit定时器封装问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         全部学习汇总: https://github.com/GreyZhang/arduino_uno

         其实,这是通用的Arduino例程,只是我正好用的UNO这个版本进行的调试以及分析。暂且,这部分的学习笔记归档放在这个分类中。

         其实,Arduino的很多例程本身的复杂度都是很低的,甚至说里面的信息量是不大的。但是,但凡有一点与众不同的地方都值得我们去学习小结一下。

         在Arduino的例程当中,有一个不需要delay的LED闪烁例程。其实,这个例程是巧妙使用了计时器来实现了一个间隔的判断。

         开篇的注释其实也说的明白,这个不同于使用delay的最大一点是不会引发其他节点的运行阻塞。也是这个因素,其实这个是我在其他的软件设计的时候应该考虑的主要的实现方式。

         因为刚好做了一个其他的测试,我自己使用的管脚切换成了数字管脚3。简单的编译烧录之后,也已经看到了LED的闪烁效果。

         不同于delay的最大点,这里触发LED闪烁的因素是一个时间差得判断。而这个判断,如果在这个loop循环中的代码执行时间短的时候,应该精确度会更高一点。至于实现的关键自然是一个时间获取函数,millis。从这里的含义以及实际的运行情况,这个应该可以获取一个ms的时间信息。关于这个计时器的设计,其实我还是想看看的。我印象中这个MCU中应该是没有32bit的定时器,正好通过这个基础功能的实现来看看这个32bit的定时器是如何封装出来的。

         至于这个定时器可以计时的数值是32bit,可以从这个基础的文档中找到说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值