2022年2月28日月曜日

M5 Atomなどのボタンの長押し

■ボタンの長押し判定■

 M5 Atom Btn 長押し……などでググってもそれらしい関数などがでてこないから、自分で実装してました。

「押された時刻(millis())を保存しといてぐるぐるループをまわりつつ、設定秒数を過ぎたらランプの色を変えて、ボタンが離された時に必要な処理を開始する」なんてやつ。

そんなプリミティブなコード、TK-80以来書いてないぞ(誇張

途中まで書いてて、ボタンのモードについて調べてたら……出ました。

boolean M5.Btn.pressedFor(<ミリ秒>)

ってのがあるんですね……関数一発じゃないですか……。

■それにしても■

それにしても、こんなのわざわざブログにするほどのことではありません。でも……ググって上位に出てくる作例があまりにも酷いのです。

5秒の長押しを検知したいとするでしょ?

「wasPressedだったらdelay(5000)経過後まだ押されていたら長押しと判断する」

っていうコードが出てきちゃう……。

それがあちこちでコピーされてる。同じアルゴリズムのサンプルを3箇所ぐらいで見たぞ。同じ人のブログなのかもしれないけど。

おにいさん……ループをそんなに止めたらいかんですよ。

1 件のコメント:

  1. 初めまして、 2000円のGPSとArduino / ESP-WROOM-02のブログを見ました。自分では、ソースコードが書けない初心者なので、記述にありました[時刻はUTCのままです。ちゃんと日本時間で見たい場合には9時間足せばOKです。移動速度もノット単位です。]のプログラム変更場所を教えてほしく存じます。よろしくお願いいたします。

    返信削除

注: コメントを投稿できるのは、このブログのメンバーだけです。