51定时器PWM

上图就是生成PWM所需要的模型了,我们编写代码就是以这个模型来进行模拟的。

因为主程序需要执行其他的操作,所以我们因该使用定时器中断的方法来实现PWM。

PWM需要三个参数,第一个是频率,第二个是占空比,第三个就是分辨率

频率:因为我们的PWM是通过方波信号来等效的模拟成平滑的信号,所以如果频率越高,那么模拟的效果也会越好。

占空比:因为PWM的一个周期是一次高电平和一次低电平,高电平时间/PWM的周期 = 占空比,通过控制占空比我们就可以调整电机的速度或者LED的亮度。

分辨率:也就是如果你的占空比是如果是以1%, 2%, 3%的大小来变化的,那么分辨率就是1%,如果是0.1%, 0.2%, 0.3%来变化占空比,那么分辨率就是0.1%,分辨率越高那么占空比的变化也就会越细致。

对于代码而言,我该怎么控制我的频率呢?

因为我们使用的是定时器,那么我们通过PWM的周期就可以控制频率了,我们设置进入中断需要的时间,每次进中断都会对计数器进行+1,然后和比较值进行比较,如果计数器小于比较值那么为一个状态,计数器大于比较值又是另一个状态,我们可以算出 PWM的周期 = 计数器可以达到的最大值 * 定时器进入中断所需要的时间。计数器的作用就是将一个PWM周期进行均分为每个时间段,这样我们就可以通过对比价值进行修改完成对一个PWM周期内高低电平的时间也就是占空比的调节。这就是代码思路

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值