TA的每日心情 | 开心 2020-8-6 15:38 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
1.value不是用来表示高低电平,PWM才是; PWM有两个参数,一个是周期,也就是,一个是PWM占空比,count是和占空比先相关的参数
- `. W* N z9 u& [) M9 l2.count不光用来产生一个100us间隔,你可以看到在这个间隔里会根据DIR的值更新value的值,结合下面的对DIR的赋值可以知道,当value的值小于1000时候,没100us,value的值增加1,当value的值等于1000时候,每100us,value的值就减一;也就是value的范围从0~1000递增递减这样循环,时间间隔是100us.9 A5 w& W' }, Z0 g4 d K- g
3.timer1实际上是计时,和count一样一个us增加1,只不过你每1ms把他清零了,他的值是会小于的value的,这个就是PWM占空比,当value约接近1000时候,timer1在1ms内小于value的时间就越长,也就是高电平时间越长,占空比越大1 H m! s( }3 z
4.那value处于1000和0就不对DIR进行处理,DIR保持之前的值即可,DIR其实是方向的意思,主要用来控制当value处于1000时开始递减,处于0时开始递增2 ^4 ~! ?2 l i# J9 h
5.timer1的时间是你自己定的,可以通过在寄存器里写值,去控制定时器的周期 ?% d7 [4 b! W: u: n/ K
& A9 `0 T+ k* X8 _7 a; I做一下总结,PWM是输出信号,pwm周期是你理解的1ms,count和value的作用是在PWM整个周期内划分出高电平的时间,也就是定下占空比,这个程序实现的是: 每1ms更新一次占空比,占空比从0开始以每次增加1%的比例逐渐增加至100%再递减这样循环
) L1 ?$ i- A: s: L# b
* i4 m* I+ C6 Z! {如果有说错的可以指正,我也不太熟
; F* f- `; O) y+ K5 h: Y建议:多看寄存器 |
|