前提
前回トグルスイッチの割り込み処理でLEDの色を変化させる方法を
thkanaさん(その節は大変お世話になりました) にご教授頂いたのですが、
前回のプログラムの発展で、トグルスイッチの状態変異回数をカウント
しなければならなくなりました。
実現したいこと
- トグルスイッチのON、OFF回数をカウントしたい。
- ゆくゆくはこの回数を利用してLEDの点灯回数を制御する予定です。
発生している問題・エラーメッセージ
割り込み内でトグルスイッチをインクリメントすると
数値が1ずつプラスされない。
例:1→7→8→16→........
該当のソースコード
Arduino
1#include "mono_con.h" 2 3volatile bool tswstate; 4bool tswstate0; 5volatile long tswcnt; 6 7 8void setup() { 9 10 pinMode(IN2, INPUT); 11 tswstate0=digitalRead(IN2); 12 13 pinMode(FCLED_G, OUTPUT); 14 pinMode(FCLED_B, OUTPUT); 15 pinMode(FCLED_R, OUTPUT); 16 17 attachInterrupt(digitalPinToInterrupt(IN2), TSWCNT, CHANGE); 18 19 tswstate = LOW; 20 21 digitalWrite(FCLED_G, LOW); 22 digitalWrite(FCLED_B, LOW); 23 digitalWrite(FCLED_R, LOW); 24 25 Serial.begin(9600); 26 27} 28 29 30void TSWCNT(void) { 31 tswstate = tswstate0 ^ digitalRead(IN2); 32 tswcnt++;//ここをどうすればよいか 33 34 Serial.println(tswcnt,DEC); //変移回数の確認 35} 36 37void loop() 38{ 39//省略(LEDの色の変更です) 40}
補足情報
Arduino IDE 1.8.19

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/18 13:13
2022/05/18 15:31
2022/05/18 23:21
2022/05/19 03:04
2022/05/19 13:19
2022/05/20 11:49
2022/05/20 15:58
2022/05/20 16:15
2022/05/22 01:03
2022/05/22 15:16