问题描述
我试图学习如何在CTC
中使用AVR
模式,并且试图弄清楚为什么在设置比较值时我应该减去1。
例如,现在我正在每200毫秒发送一次AVR
的工作时间,通过计算我发现该值应该是50000,但是在有关该程序的视频中,该人声称应该是50000-1,为什么?
解决方法
这是因为基础计数器从零开始,以各种AVR数据表中提到的“ TOP”结束。不知道您正在使用的确切部分,我无法为您提供数据表,但它们在定时器模式矩阵中使用的术语基本相同。
因此,如果您希望计数器精确计数50000次,则必须减去一。 CTC表示“比较匹配时定时器”,从零开始表示您需要“一减”。就这么简单。
上对此和其他AVR主题的讨论非常好。