回答:
彼らは、競合しないmillis()
厳密で即値読み込みTCNT0
の値と比較するタイマ0の使用ハードウェアの能力を経由して、一方、PWMのTCNT0
中の値とをOCR0x
それらのいずれかの値に影響を与えず。
あなたの質問に直接答えた@Ignacioの答えに追加するだけです。あなたが話す「矛盾」Timer0
はのプリスケーラに関連しています。
ほとんどの場合、これらのピン(誤ってUNOのピン5と6)をPWMで問題なく使用し、正しい値を読み取ることができますmillis()
(予想される遅延はから取得できますdelay
)。
問題が発生するのは、プリスケーラを変更する場合(通常はPWM信号の周波数を変更する場合)です。これを変更すると、の計算とレポート、millis()
およびの長さに直接影響しますdelay(x)
。
millis ()
delay ()
millis()
タイマー0のオーバーフローカウントのみを使用します。micros()
の即時値を読み取りますTCNT0
。