找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6104|回复: 0
打印 上一主题 下一主题
收起左侧

AVR定时器1的相位修正PWM模式设置

[复制链接]
跳转到指定楼层
楼主
ID:65608 发表于 2014-9-1 00:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单归纳一下
相位修正PWM 与快速PWM 一样,不同的方波产生模式决定了TOP值是固定的,还是任意的。如在试验中选择11(任意的TOP), OC1A 就要作为牺牲,仅能输出50%占空比的方波,OCR1A 决定了输出频率,而OCR1B 决定了PWM 的占空比。OCR1A可以作为OCR1B 的参考值,相位修正PWM 有低频率而且PWM 精确度高的特性。除此之外,既然OC1A 被牺牲了,那么COM1A1:0 的设置也需要合理。
我们稍微整理一下编程时的步骤:
1. 将PD4~PD5 引脚设置为输出(默认为低电平)。DDRD|=BIT(4)|BIT(5);
2. 设置方波产生模式,WGM12~10,试验中是以模式11 为例。TCCR1A|=BIT(0)|BIT(1); TCCR1B|=BIT(4);
3. 设置OC1A 与OC1B 的引脚规则COM1A1:0=0,1 COM1B1:0=1,0。TCCR1A|=BIT(6)|BIT(5);
4. 设置预分频(时钟源)。TCCR1B|=BIT(0)|BIT(1);
5. 设置OCR1A 初值,决定输出频率。OCR1A=864;
6. 设置OCR1B 初值,决定PWM 方波的占空比。OCR1B=173
7. 编辑相关的中断函数(如果有的话)。
最后补充一下,当OCR1A 最为TOP 值时,OC1A 仅能输出50%占空比的方波,而该输出的频率是OC1B 的一般而已。
注意:PD4 是OC1B,PD5 是OC1A。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表