多喝水少吃饭 2022-07-05 16:24 采纳率: 83.3%
浏览 35
已结题

用pwm做led呼吸灯的问题

img

img


这两个是只是重装载值不一样,但是第一个程序亮度的变化很慢,第二个很快,这是为什么呢,照理说,重装载值大的话,进入中断很快的话,亮度变化应该更快才对

  • 写回答

1条回答 默认 最新

  • 乐观的study123 2022-07-05 22:05
    关注

    按你做的这个,开始当count第一次达到100,LED=1;已经输出了10ms,但是此时count=0,而PWM=10,LED=0,再过count再计数10次,也就是过了1ms,而PWM是11,count又计数超过了11则LED=1;那么LED维持低电平只有1ms多点,所以不行;
    其实一个count就能实现占空比了,(去掉主程序里的PWM那段)在定时器中断里这么改
    #define peroid 20000////周期值
    #define PWMH 10000///高电平宽度
    count++;
    if(count<peroid)
    {
    if(count==PWMH)
    LED=1;
    else
    LED=0;
    }
    else
    count=0;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 创建了问题 7月5日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效