millis()是否与与定时器0相关的PWM引脚冲突?


9

我已经读到该millis()函数使用与几个PWM引脚相同的计时器。

如果您使用这些PWM引脚,是否millis()还会返回正确的值?

Answers:



5

只是要添加到直接回答您问题的@Ignacio答案中。您所说的“冲突”与Timer0的预分频器有关。

在大多数情况下,您可以将这些引脚(millis()恰好是UNO上的引脚5和6)与PWM一起使用,并读取的正确值(并从获得预期的延迟delay

如果要更改预分频器(通常是修改PWM信号的频率),则会遇到问题。如果更改此设置,则将直接影响的计算和报告millis()以及的长度delay(x)


您可以通过Serial.println(TCCR0A,BIN)的低位读取计时器的预分频器。如果它们为“ 11”,则您的预分频器为clk / 64。然后,您可以计算修改millis()和delay()的因子。
戴夫X

这是一个很好的观点,我一直只是避免修改它,但是如果您真的想要/不需要,则没有理由。另一点是,如果你修改它,你已经知道了新的预分频器,并可能反过来写包装器millis ()delay ()反正
Madivad
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.