[Arduino]動作を高速化する
こんな記事を見つけた。
こんな感じに書くと高速化できるらしい。
1 | PORTD |= _BV(5); // PD5をHIGHに |
1 | PORTD &= ~_BV(5); // PD5をLOWに |
1 | int val = PIND & _BV(2); |
複数のピンの状態を一度に変更することもできる。
1 2 | PORTD |= _BV(5) | _BV(6) | _BV(7); PORTD &= ~(_BV(5) | _BV(6) | _BV(7)); |
これとか結構便利そう。
1 | PORTD = 0b1010000; // PD5だけHIGHに、他はLOWに変更 |
へぇ〜こんなことできるんだ、知らなかったなぁ。
てかdigitalwriteってそんなにサイクル数かかるのね
比較した差が断然すぎてびっくりだ!
まぁ確かにこの方法に慣れればAVRマイコンを生で触るハードルが下がるのも分かるけど、慣れるまで普通に時間かかりそうね・・・
沼にはまる予感がプンプンしやがる
まぁ、気になった人は参考にしたブログに行ってみてね、どれくらい高速化できたかオシロで計測した結果を掲載してる。
この記事へのコメントはこちら