【问题标题】:What does the "Update of OCR1x" means in Timer1 - Atmega32Timer1中的“OCR1x更新”是什么意思 - Atmega32
【发布时间】:2020-07-10 08:58:03
【问题描述】:

查看 atmega32、TIMER1、操作模式的数据表时 check the highlighted column in the image i added here

1-我不明白“更新”是什么意思(在图片中突出显示)。

2-告诉TOP值是固定的是什么意思??? 不能在运行时或其他东西中更改??

【问题讨论】:

  • 您将如何使用具有 8 位长寄存器的定时器设计不同的 PWM 输出生成?您需要指定其计数方式以及引脚更新的值(设置、清除或切换)

标签: timer arduino embedded atmega32


【解决方案1】:

答案 1 OCR1A 和 OCR1B 是定时器产生 PWM 的引脚。这说明了这些引脚何时发生了什么事。如果您阅读之前的部分,则会显示波形并解释不同的计数,它可以很好地解释它。根据模式,更新是切换或设置或清除。

我正在查看 328P 数据表的第 16.9 节。 19.9.1 将正常模式列为所有 3 位 0,即图表中的第一行。它说在正常模式下计数总是向上并从 TOP 溢出回到零。 TOP 始终处于计数器的最大值。这是最简单的模式。在该模式下,TOP 值为 OxFFFF(计数器的最大值),PWM 引脚在与比较寄存器匹配时立即更新。溢出标志设置为 MAX,此定时器为 0xFFFF。

它还描述了 CTC 模式,其中 TOP 值由寄存器之一设置。然后描述了不同的 PWM 模式以及它们如何使用 TOP 和 BOTTOM 以及它们何时更新。这真的比我能在这个答案上重现的要多。

再举一个例子,看看模式 1。这是一种相位校正模式,根据第 16.9.4 节,这意味着计数器从 BOTTOM 计数到 TOP,然后再次向下计数。看起来在模式 1 中,TOP 值为 0x00FF,所以它是一个 8 位定时器。它在 TOP (和比较匹配)处更新引脚。如果您阅读该部分,它会解释这如何影响 PWM 脉冲。它还说它在 BOTTOM 设置了溢出标志,这是有道理的,因为这是定时器的一个完整周期。

答案 2 如果最高值是固定的,那么是的,您不能更改它。在某些模式下,您可以使用其他寄存器之一设置最大值。有些模式你不能。同样,前面的部分都很好地解释了所有这些不同模式是如何工作的。

【讨论】:

  • 我无法清楚地理解第一个答案,该列有诸如立即、顶部和底部之类的值
  • 您必须阅读数据表中有关定时器波形模式的部分,才能真正理解它们。我会尝试在答案中添加一些内容。
  • 我对“更新”的理解是 OCRxx 是双缓冲的,在大多数模式下,新值在“传播”到最终 OCRxx 寄存器和计时器开始之前等待到达 TOP 或 BOTTOM使用它。
猜你喜欢
  • 1970-01-01
  • 2011-08-12
  • 2017-06-11
  • 2018-03-05
  • 2023-03-27
  • 2017-09-30
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多