如何在AVR CTC模式下设置比较值

问题描述

我试图学习如何在CTC中使用AVR模式,并且试图弄清楚为什么在设置比较值时我应该减去1。 例如,现在我正在每200毫秒发送一次AVR的工作时间,通过计算我发现该值应该是50000,但是在有关该程序的视频中,该人声称应该是50000-1,为什么?

解决方法

这是因为基础计数器从零开始,以各种AVR数据表中提到的“ TOP”结束。不知道您正在使用的确切部分,我无法为您提供数据表,但它们在定时器模式矩阵中使用的术语基本相同。

因此,如果您希望计数器精确计数50000次,则必须减去一。 CTC表示“比较匹配时定时器”,从零开始表示您需要“一减”。就这么简单。

AVRGeeks

上对此和其他AVR主题的讨论非常好。