搜索
bottom↓
回复: 3

AVR期末复习帖—关于比较单元的一些疑问

[复制链接]

出0入0汤圆

发表于 2011-1-16 23:17:13 | 显示全部楼层 |阅读模式
在mega16的datasheet中,有以下这样一段话:
The OCR0 Register is double buffered when using any of the Pulse Width Modulation
(PWM) modes. For the normal and Clear Timer on Compare (CTC) modes of operation,
the double buffering is disabled. The double buffering synchronizes the update of the
OCR0 Compare Register to either top or bottom of the counting sequence. The synchronization
prevents the occurrence of odd-length, non-symmetrical PWM pulses, thereby
making the output glitch-free.
书上对于此段话的解释是不会产生奇边非对称的PWM,对此我一直不是很理解,难道指的是在PWM模式下我每一次对于OCR0的访问,都是先改变缓冲寄存器中的值,然后单片机将自动将OCR0的值在比较匹配时,自动填充?

出0入0汤圆

发表于 2011-1-17 09:58:19 | 显示全部楼层
呵呵,要明白到这个程度上,是准备想考个90分以上的好成绩了。不过平时在做什么?早就该看,不明白就问,这才是好的认真的学习态度和方法。

如果对T/C0的工作方式没有全面掌握,以及对PWM的概念和产生过程不清楚的话,单看这一段,是不容易理解它在说什么的,哪怕你每个英文单词都知道,语法也了解。这个不是简单的字面翻译。

1。对于T/C0有4个工作模式:普通、CTC、快速PWM和相位可调(对称)PWM。

2。当T/C0工作在2种PWM模式时,OCR0寄存器为双缓冲方式工作:也就是给OCR0配上一个辅助的缓冲寄存器。这里就是OCR0 Register is double buffered的含义。

3。当T/C0工作在PWM模式时(其实对于所有的4个模式都一样),程序可以在任何时间读取OCR0的值,这里都是读到的真实OCR0的值,但对T/C0的工作是没有任何影响的。也就是读TCR0的值,不影响T/C0的工作。

4。主要的问题是写0CR0寄存器!!当T/C0工作在PWM模式时,如果可以随意改变0CR0值的话。就可能会产生一次(个)非正常的PWM波:

    比如快速PWM:假定原0CR0为150,当TCNT0计数到50时,你把OCR0改成了25,那么在此次PWM过程中就没有了比较匹配的过程,此次生成的PWM就乱了。

    比如对称PWM:假定原OCR0为150,TCNT0在上升计数过程中到150比较匹配了,继续上升到200时,你把OCR0改成25。那么当TCNT0下降过程中,应该到150产生第2次匹配(产生对称PWM),但此时只能到25才产生第2次匹配,本次产生的PWM就不对称了。

5。为了防止这样的情况产生,当工作在PWM方式时,硬件上采取了措施,OCRO匹配成双缓冲,用户程序在此时写入OCR0的值,只能写入到OCR0的辅助缓冲器中,并不直接写入OCR0本身,这样就不会对本次PWM产生任何影响。当TCNTO的值到达255时(快速PWM),或0时(对称PWM),硬件同步的将OCR0辅助寄存器的值更新到OCR0中,这样新的一次PWM产生,就使用新的比较值了。
    注意这里的同步更新不是发生在比较匹配时,是发生在update of the OCR0 Compare Register to either top or bottom of the counting sequence.

     其中的TOP是指快速PWM模式,BOTTOM是指对称PWM模式。都是与一次产生PWM过程中的结束(开始)点同步的。


不管什么MCU,AVR、STM32、M051...,只要是具备PWM功能的,基本都是这样的。

出0入0汤圆

发表于 2011-1-17 10:15:54 | 显示全部楼层
单纯是应付考试,这个问题就不用多化时间了。

出0入0汤圆

发表于 2015-11-26 22:19:04 | 显示全部楼层
” 其中的TOP是指快速PWM模式,BOTTOM是指对称PWM模式。都是与一次产生PWM过程中的结束(开始)点同步的。“
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 14:10

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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