在查看 atmega32、TIMER1 的数据表时,操作模式 检查我在此处添加的图像中突出显示的列
1-我不明白“更新”是什么意思(在图片中突出显示)。
2-告诉TOP值是固定的是什么意思???不能在运行时或其他东西中更改??
在查看 atmega32、TIMER1 的数据表时,操作模式 检查我在此处添加的图像中突出显示的列
1-我不明白“更新”是什么意思(在图片中突出显示)。
2-告诉TOP值是固定的是什么意思???不能在运行时或其他东西中更改??
回答 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 如果最高值是固定的,那么是的,您不能更改它。在某些模式下,您可以使用其他寄存器之一设置最大值。有些模式你不能。同样,前面的部分都很好地解释了所有这些不同模式是如何工作的。