TA的每日心情 | 开心 2020-8-6 15:38 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
1.value不是用来表示高低电平,PWM才是; PWM有两个参数,一个是周期,也就是,一个是PWM占空比,count是和占空比先相关的参数
1 [- I5 k6 {7 }+ D2.count不光用来产生一个100us间隔,你可以看到在这个间隔里会根据DIR的值更新value的值,结合下面的对DIR的赋值可以知道,当value的值小于1000时候,没100us,value的值增加1,当value的值等于1000时候,每100us,value的值就减一;也就是value的范围从0~1000递增递减这样循环,时间间隔是100us.
$ i6 y8 F$ d$ ]% N3.timer1实际上是计时,和count一样一个us增加1,只不过你每1ms把他清零了,他的值是会小于的value的,这个就是PWM占空比,当value约接近1000时候,timer1在1ms内小于value的时间就越长,也就是高电平时间越长,占空比越大
: R, y, U- G1 O% u* v( g1 O6 P4.那value处于1000和0就不对DIR进行处理,DIR保持之前的值即可,DIR其实是方向的意思,主要用来控制当value处于1000时开始递减,处于0时开始递增" F, R5 k* @! I/ ?7 m9 T! f' N8 b
5.timer1的时间是你自己定的,可以通过在寄存器里写值,去控制定时器的周期, L T+ w8 r9 y/ T' ^& ]5 u/ P
) O8 J; J& O4 ~做一下总结,PWM是输出信号,pwm周期是你理解的1ms,count和value的作用是在PWM整个周期内划分出高电平的时间,也就是定下占空比,这个程序实现的是: 每1ms更新一次占空比,占空比从0开始以每次增加1%的比例逐渐增加至100%再递减这样循环
. Z2 w" v; U! N. [4 j4 F Q; x$ z# [
4 x2 h+ T& b% `7 D4 E% I如果有说错的可以指正,我也不太熟
o/ u0 C; `) R1 d建议:多看寄存器 |
|