[AVR单片机] avr 产生多路pwm

[复制链接]
7191|17
 楼主| 472666GAQ 发表于 2010-10-16 15:32 | 显示全部楼层 |阅读模式
怎么用avr的一个定时器的产生多路的pwm呢
chenczy 发表于 2010-10-16 16:15 | 显示全部楼层
看你要的是什么信号,一个定时器可以从不同的IO输出不同的PWM,主要看你的PWM是什么
 楼主| 472666GAQ 发表于 2010-10-16 17:04 | 显示全部楼层
就拿avr 定时器产生的快速pwm举例来说吧
老鱼探戈 发表于 2010-10-22 12:56 | 显示全部楼层
是用来驱动蜂鸣器或者马达等器件?
yifeizhong 发表于 2010-10-22 13:26 | 显示全部楼层
慢慢来,我刚开始学。:)
 楼主| 472666GAQ 发表于 2010-10-24 14:59 | 显示全部楼层
我就是想在同一时刻让8个led等的亮度不同 这就是我的目的
365026266 发表于 2010-10-27 00:37 | 显示全部楼层
我想   用avr驱动电机的
宇宙飞船 发表于 2010-10-27 10:58 | 显示全部楼层
原理上是很容易嘀。
那看你要做多高频率的PWM。
 楼主| 472666GAQ 发表于 2010-10-27 13:22 | 显示全部楼层
只要能看出8个led的效果就行了
宇宙飞船 发表于 2010-10-28 17:06 | 显示全部楼层
这要求很低,好办,设定时器50 us中断一次,对于8M时钟,可以执行400条指令,这足以完成多路中断服务程序。

PWM的分辨率设为255级,那么 50 us*255=12.75 ms 。变成直流控制RC时间可取10倍以上,12.75*10=127.5ms 反应速度可以做到少于0.15秒。当然对于LED亮度控制,可以不经RC滤波,那么反应速度就是12.75 ms 比液晶电视的刷新速度还快。

爱玩多少路,就在中断服务中设定多少个宽度计数器。
PWM周期控制共用一个计数器--->计数到255置所有PWM输出脚高电平。
宽度调整分别用各自的计数器--->分别置对应的PWM脚低电平。
 楼主| 472666GAQ 发表于 2010-10-28 18:03 | 显示全部楼层
我自己先试试  不行再找飞船  用avr的感觉就是屡试不爽
esthrth 发表于 2011-2-14 16:56 | 显示全部楼层
用同一个Timer产生的时基,将时间刻度划分不一致不就可以达到目的吗,这个很普通啊:sleepy:
yfei_tech 发表于 2011-2-17 13:36 | 显示全部楼层
OCRnA和OCRnB设置不同值就可以实现。规格书的PWM部分讲的挺清楚的。
hanlinsong 发表于 2011-2-20 17:50 | 显示全部楼层
用中断啊
71057178 发表于 2011-3-1 22:00 | 显示全部楼层
定时器控制IO输出

关键是频率频率!!:lol
09电气 发表于 2011-3-5 21:46 | 显示全部楼层
过两天试试!
xy_k8299 发表于 2011-7-3 15:30 | 显示全部楼层
说这么多,直接上程序吧
ping11a 发表于 2013-11-6 21:43 | 显示全部楼层
yifeizhong 发表于 2010-10-22 13:26
慢慢来,我刚开始学。

我也是新手,请大家多多指教;非常感谢哈。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

285

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部