打印

单片机 延时 控制LED

[复制链接]
8103|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
微机与危机|  楼主 | 2021-5-28 23:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哪位单片机大佬帮帮我,单片机中如何用延时程序控制不同频率的LED同时闪烁。这做得到吗?只控制一个LED闪烁我会,但是三个不同频率的LED灯同时闪烁,我尝试过,但是实现不了,

使用特权

评论回复
评论
tyw 2021-5-29 08:04 回复TA
采用公共时标(例如1秒),同时对多个计数器计数(例如A,B2个计数器,A=3,B=4),哪个计数溢出就处理一下操作.这样就能同时处理了.说是同时,其实是串行分时.根椐最高那个频率,再乘10来设定时标.例如最高1秒,时标设0.1秒,这样就能确保采集到所有信息了. 

相关帖子

沙发
lyjian| | 2021-5-29 00:02 | 只看该作者
设个时间短的基准延时(或者用中断方式的话就设个时间短的中断),设三个减计数器,每次基准延时减一个数,哪个减到0了就重置计数初始值同时取反对应LED,如此反复...

使用特权

评论回复
板凳
tyw| | 2021-5-29 09:39 | 只看该作者
定时中断设100ms,定时中断到,在定时中断里将标志置"1"并重置定时器,在主程序里检查标志,=1,则分别把A,B,C...计数器加1,有溢出则操控关联LED灯,无溢出则检查B,...全部查完,则把标置清"0".

使用特权

评论回复
地板
a406916285| | 2021-5-29 12:33 | 只看该作者
状态机思想去考虑

使用特权

评论回复
5
cjseng| | 2021-5-29 13:43 | 只看该作者
取几个LED闪烁周期的最大公约数,作为定时器周期,之后定时周期到了,就是判断要不要闪的问题,就是个数学问题。

使用特权

评论回复
6
henangongda123| | 2021-5-30 11:48 | 只看该作者
这就是算法、解决问题的思路,上面的建议是一种方法,有的单片机自带PWM输出,可以用单片机自带的硬件PWM去实现

使用特权

评论回复
7
lyjian| | 2021-5-31 12:34 | 只看该作者
henangongda123 发表于 2021-5-30 11:48
这就是算法、解决问题的思路,上面的建议是一种方法,有的单片机自带PWM输出,可以用单片机自带的硬件PWM去 ...

PWM主要控占空比,非频率(很多单片机自带的多路PWM输出共用周期)。

使用特权

评论回复
8
GlenX| | 2021-5-31 20:06 | 只看该作者

单片机 延时 控制LED

同一个定时器是同一个时钟,但不同的定时器可以单独设置。搜索
复制

使用特权

评论回复
9
微机与危机|  楼主 | 2021-6-4 10:54 | 只看该作者
谢谢各位大佬,问题已经解决了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

19

帖子

0

粉丝