satotsuのいろいろつくってみた日記

いろいろつくってみたあれこれの記録。

arduinoめも

今さらだけど、arduinoってなんだっけとか、タイマとか割り込みってどうなってるんだっけ、とか気になるのでめも。

 

arduinoは、AVRに基板とIDEをセットにしたものみたい。

AVRのことではなかった。ハードはなんとオープンソース

だからびんぼうでいいのとかできるんだね。

Arduino - Wikipedia

 

タイマーは、AVR自体はtimer0,1,2あるんだけど、arduinoでは、

MsTimer2 → ms

TimerOne → us

でアクセスするらしい。あれ?timer0は??

miso-engine.hatenablog.com

 

 タイマの関数の引数に呼び出す関数を入れるみたい。

 ちなみに割り込みベクタは固定。優先度高い順に、timer2,1,0。

 

タイマとピンの対応はこちらを参考にさせていただく。

そうそう、◯◯といえば : Arduino の PWM と タイマーと tone() 関数

 

IOアクセスが遅そうというのはその通りで、ここで調べてる方がいた。

digitalWriteおそい。でも144kHzでるなら、往復7usくらいなので普通は問題ないかも。

ehbtj.com

 

どうしたら良いかというと、digitalWrite使わずに、レジスタ直接書き換えたらいい。

というか、こちらの方がわかりやすいと思うのは自分だけではないはず。。

cammy.co.jp

 

ならタイマもレジスタ書けばいろいろできるんでは。

と思ったら、ものすごくわかりやすくまとめてるところがあった。感謝。

analogWrite()[Arduino 1.0.5]

 

こちらも参考に。

usicolog.nomaki.jp

 

タイマ割り込みのこと忘れてた。ここを参照させてもらお。

makers-with-myson.blog.so-net.ne.jp

 

割り込み要因はこちらで。

usicolog.nomaki.jp