きのぴぃのブログガジェットの食べすぎには注意しましょう。自作&ガジェットCheckArduinoで外部割込みが使えたら...と思っていたら、ちゃんと関数があるでないの。attachInterrupt関数がそれだ。ハイロ―のレベルだけでなく、波形の立ち上がり立下りでもOK。これには注意すべき点があって、内部カウンターを使用するdelay()関数とやらが使えないので、ディレイしたい場合は、同関数が使えない。(詳しくはこちら)困った...と思っていたら、実は逃げ道があった。関数、delayMicroseconds関数という関数を使う方法があるけれど、内部カウンターを唯一使わないdelayMicroseconds関数を使うことで、回避できるというのだ。実際にやってみると、何事もなかったかのようにすんなりと動いた。16383マイクロ秒(=16.383ミリ秒)以内の値を指定したとき、正確に動作するとのこと。attachInterrupt関数を使っている際、16ミリ秒以上のディレイをするには、delayMicroseconds(10)と10ミリ秒位に設定してfor関数などでループを掛けると使いやすい。割り当てた関数のなかで値が変化する変数にはvolatileをつけて宣言すべきとか、シリアル通信で受信したデータが失われる場合もあるのだとか。»Author:きのぴぃ年齢:だいぶおじさん職業:ごく普通のサラリーマンブログ上では「おいら」が口癖。独身時代は、色々な趣味に手を出し、ガジェット類が多く、今更ながら後悔している...。