AVR PWM说明7.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
/***************************************************** CodeWizardAVR V1.25.3 Professional 相位修正PWM,也可以叫双斜率PWM *****************************************************/ #include mega48.h void main(void) { TCCR0A=0 //升序比较匹配时OC0A=0,降序时比较匹配时置OC0A=1,TOP固定等于255 TCCR0B=0 //时钟=1024分频,一旦设定时钟,TCNT0就开始不断的计数 OCR0A =123;???????? //比较设定值,数字越大,PD6输出1的占空比越大 DDRD.6=1;?????????? //端口方向设置为输出才有效 while (1); } /***************************************************** CodeWizardAVR V1.25.3 Professional 快速PWM,也可以叫单斜率PWM *****************************************************/ #include mega48.h void main(void) { TCCR0A=0 //比较匹配时OC0A=0,计数到比较值时OC0A=1,TOP固定等于255 TCCR0B=0 //时钟=1024分频 OCR0A =123;???????? //比较设定值,数字越大,PD6输出1的占空比越大 DDRD.6=1;?????????? //端口方向设置为输出才有效 while (1); } 名词解释:TOP 计数器(TCNT0)由0开始不断的作+1计数,计数到最大值时,计数器又返回到0开始作+1计数(单斜率),如此循环; 计数器(TCNT0)由0开始不断的作+1计数,计数到最大值时就开始作-1计数,计数到0时又开始不断的作+1计数(双斜率),如此循环; 这个最大值就是TOP(TOP可以为固定值255,也可以是OCR0A的值) 由于 TCNT0 是一个计数器,一旦时钟设定,它就会不断的计数(倒数),这样 TCNT0 和 OCR0A(OCR0B) 就会有相等的时候,相等时就是比较匹配。 上面的2个例子中,由于TOP是固定的255,所以要调节PWM频率只能通过调节时钟分频来实现。可以看出来,如果上面的2个例子中TOP相同、时钟相同,那么快速PWM的频率比相位修正PWM的频率高一倍,而占空比的分辩率却刚好相反。 下面的例子是一个“真正的快速PWM”,它除了改变T/C时钟可以改变PWM的频率以外,还可以改变TOP的值(OCR0A)的值来改变PWM的频率,但是它只能是由OC0B输出,不能由OC0A输出,因为这时寄存器OCR0A的值就是TOP的值(计数最高值)。也就是说:如果不使用中断,如果T/C时钟是固定的,那么,OC0A输出快速PWM的频率就无法改变。AVR单片机定时-计数器的PWM功能设计要点 [日期:2008-07-17 ]?[来源:东哥单片机学习网 整理 作者:佚名]?[字体:大 中 小]? (投递新闻) 一、定时/计数器PWM设计要点 ? ? 根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: ? ? ? 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 ? ? ? 2.然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。AVR定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。 ? ? ? 3.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。PWM频率的计算公式为: ? ? ? PWM频率 = 系统时钟频率/(分频系数*(1+计数器上限值)) ? ? ? 4.快速PWM模式适合要求输出PWM频率较高,但频率固定,占空比调节精度要求不高的应用。 ? ? ? 5.频率(相位)调整PWM模式的占空比调节精度高,但输出频率比较低,因为此时计数器仅工作在双向计数方式。同样计数器的上限值决定了PWM的频率,比较匹配寄存器的值决定了占空比的大小。PWM频率的计算公式为:

文档评论(0)

haowendangqw + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档