このプログラムでは、ピン10がHIGHになってからピン11がHIGHになるまで、数マイクロ秒の間があくはずです。これでは、時間に敏感な外部回路を接続している場合に困ります。かわりに、PORTB |= B1100;とすれば、両方のピンが完全に同じタイミングでHIGHになります。
・1マイクロ秒未満の速さでピンをオンオフする必要が生じるかもしれません。ソースファイルlib/targets/arduino/wiring.cを見ると、digitalRead()やdigitalWrite()は10行以上のコードからなっていて、コンパイルすると少なからぬ量のマシン語になります。各マシン語は16MHzのクロックの1サイクルを消費します。直接ポートにアクセスすることによって、より少ないクロックサイクルで同じ仕事をこなすことができます。 [目次へ戻る] |
Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]