OfficialのInteruptInクラスも動作しないようだ。
#include "mbed.h" DigitalOut led1(LED1); InterruptIn sw1(D2); volatile bool isSw1Pushed = false; void sw1Pushed() { isSw1Pushed = true; } int main() { printf("\n\n*** InterruptIn example ***\n"); sw1.mode(PullUp); sw1.fall(&sw1Pushed); while (true) { led1 = !led1; printf("%d\r\n", isSw1Pushed); isSw1Pushed = false; wait(0.1); } }
main()関数内の
sw1.fall(&sw1Pushed);で割込みハンドラをsw1Pushed()に指定すると、プルアップされなくなる(←テスタで測定)
めんどくさいけど、割り込みではなくDigitalInでPollingするクラスを作ろうか(@@;
以前は動いていたので(参考:「NucleoF401REでQEIライブラリを使う。http://dad8893.blogspot.jp/2016/05/nucleof401reqei.html」)mbed OS 5になったのが原因かなぁ。
0 件のコメント:
コメントを投稿