ボタン入力のまとめ

LEDの点灯からのButtonの入力確認は簡単だったと思います。

しかし、このプログラムには信号機として利用するには少し不便な欠陥があります。

それは、2秒間周期で一瞬しかButtonを検知されないことです。

loop {
    info!("red");
    red_led.set_high().unwrap();
    timer.delay_ms(2000);

    if button.is_low().unwrap() { // この処理が2秒周期で一瞬しかやってこない
       ... 
    }
}

この処理だと、Buttonを押したタイミングでたままた検知されるか、Buttonを長押ししないと反応しないようになっています。 押した時にif..{}の処理をしたいですよね?

次の章では、そんな希望を叶えてくれる割り込みについて解説します。