今、arduinoを用いてチャタリング関数を参考書をもとに考えているのですが、
サンプルコードでイマイチ理解ができないところがあり質問させていただきました。
ブール宣言を用いてチャタリングを取る関数で
boolean tsw = digitalRead(dx); // ⇦ これ以降の内容がイマイチ理解できません。
左のコードはtswはdigitalReadで読み取ったHi or Lowを代入しているように
見えるのですが、あっていますか?
while( tsw == digitalRead(dx) ) ;
delay(300);
わかりにくい質問かもしれませんがよろしくお願い申し上げます。
void setup(){
pinMode(2, INPUT_PULLUP);// タクトスイッチ(D2)接続
pinMode(13,OUTPUT); // Arduino上のLED(D13)設定
}
boolean sw=false; // 初期値はfalse
void loop(){
while( !chtsw(2) ) { // スイッチが押された状態確認
if( sw ) digitalWrite(13,LOW);
else digitalWrite(13,HIGH);
sw = !sw;
}
while( chtsw(2) );// スイッチが離された状態確認
}
boolean chtsw(byte dx) {
boolean tsw = digitalRead(dx); //
while( tsw == digitalRead(dx) ) ;
delay(300);
return !tsw;//押された状態=false(LOW)、離された状態=true(HIGH)
}