• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

利用定时器实现呼吸灯

382fecd4f6e54a6c 2019-03-17 浏览量:1507
没有硬件PWM,只能软件模拟,但是发现都是在闪烁,没有做出呼吸的效果。
使用软件延时的方法可以做出来,但是运行效率太慢了。
我想用定时器中断实现呼吸灯,请问应该怎么做?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 定时器中断里,定时一个1ms的中断,计数到100ms翻转一次。这个就是PWM周期 如果你要调占空比30%就计数到30ms翻转一次,周期到了再翻转一次,这就是一个PWM波形了。然后就是调占空比变量,慢慢加占空比,加到95%开始减少,减小到20%左右开始增加。就是呼吸效果了

    • 发布于 2019-03-17
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:10
  • 你用51的是吗pwm实质是改变高低电平的占空比,io口输出高低电平或者定时器中断啥的。。具体实现自己百度
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 1
    • 0

  • 定时器不会频闪,理论上12m时钟,设置pwm100等级,那么pwm频率也有10k,眼睛根本看不出,假如定时器设置10us那么有1khz的pwm也是看不出来的
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • PWM频率要做到50Hz以上,太低了就容易出现闪烁感,另外不同人的眼睛对闪烁频率的敏感度有差异,大多数人30+Hz都感觉不到了,但少部分人还是会看得到。
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 将定时器的定时间隔弄短一点,另外,呼吸灯要求的是调整占空比
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 那么是你的反转的频率太小的,定时器的时间要再小,再快一些的
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 呼吸灯需要间隔一段时间不停修改脉宽控制亮度
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 软件模拟呼吸灯的话需要GPIO翻转速率达标才行,如果翻转不够快的话是做不到呼吸灯效果的,直接用定期变化的高低电平模拟PWM变化。

    • 发布于2019-03-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 你是不是周期太大,周期小到一定程度人眼无法分辨,就看起来像是连续变化的
    • 发布于2019-03-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以使用定时器的啊,你的PWM的频率要快一些,否则是看不出呼吸的效果的
    • 发布于2019-03-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是你的时间设置的太慢了,速度再快一些,要大于100ms才可以看出效果的
    • 发布于2019-03-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

利用定时器实现呼吸灯