「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



arduinoでtimer0関係のピン(digital5とdigital6ピン)
からPWMでアナログ出力し、LEDを光らせてみたら
出力値=0(Duty比=0)でもLEDが薄明るく
光っちゃってた件について。

arduinoの公式ページになんとなくそれっぽいことが
かかれている感じ。
http://arduino.cc/en/Reference/AnalogWrite

このページの「Notes and Known Issues」のところに、
  ピン5と6は想定より高いDutyCycleで
  出力される。millis() や delay()関数の影響で、
  これらの関数はPWM出力と同じ内部タイマーを
  使っている。

みたいな事書かれてます。設定値よりも少しパルス幅が
広くなっちゃうことがあるよ、ということのようです。

とすると、原因はarduinoの内部処理に起因するって
いう理解でいいんでしょうか。

それにしても、なぜそれらの関数の処理がPWMの
出力値に影響するんだろう?
PWMって、設定値とハードウェアカウンタの値を
比較して、その大小で自動的に0か1を出力してる
だけのはず。

それならソフトウェア処理の影響は無いと思うんだけど
なぁ。タイマー割り込みがなんか悪さしてるのかなぁ?
あまり関係無さそうに思うんだけどなぁ。


時間が有る時にでもまた調べてみましょうか…



コメント ( 2 )