GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
(1)にanalog.read()がある場合、コンパイルはできますが実行時にエラーが出ます。
(2)であれば動作します。割り込み先でanalog.read()を行うにはどのようにすればよいでしょうか。
#include "mbed.h"
AnalogIn ain(A0);Ticker timer;
int k=0;float val;void i_timer(){ val=ain.read(); //(1) k=1;}
int main() { timer.attach(&i_timer,1.0);
while(1) { if(k==1){// val=ain.read(); //(2) printf("%f\r\n",val); k=0; } }}
基本的にはhold layeeさんの記載の通りだと思います。 どうしても割り込み内で実行したい場合は、AnalogInクラスを継承させ、以下のlock関数、unlock関数を空関数でオーバーライドするとどうでしょう。 github.com/.../AnalogIn.h オーバーライドのサンプル itsakura.com/cpp-override