一、原理
我们需要两个计数器cnt1
和cnt2
:
cnt1
随系统时钟同步计数(系统时钟上升沿时cnt1
加1),范围为0~ T
;cnt2
随cnt1
的周期同步计数(每当cnt1
等于T
时,cnt2
加1)范围也是0~ T
;
这样每次cnt1
在0 ~ T
的计数时,cnt2
为一个固定值,相邻cnt1
计数周期对应的cnt2
的值逐渐增大,每次将cnt1
和cnt2
进行大小比较,不同比较结果下设置pwm
信号为高电平或者低电平即可。
我们将cnt1
计数0~T
的时间作为脉冲周期,cnt2
的值作为脉冲宽度,则占空比 = cnt2/T
,占空比从0%—100%(或者100%—0%)的时间 =cnt2*cnt1 = T^2 (单位是clk周期)
。