![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんにちは。
非常に基本的かも知れませんが、
プログラムによるチャタリング対策の
仕方がわかりません。
スイッチONを割り込みでうけつけてから、
0.5~1秒待って、まだ、ONであれば、
実行する、という方式でやっています。
短い秒は、カットされていますが、長押し
があると、おかしな動作になってしまいます。
どういう方式をとるのが一般でしょうか。
特に言語はといません。方式、考え方が
知りたいです。
(ハードによる防止は、
まったく考えていませんので、
結構です)。
以下、参考までに
自分のプログラムです(PA使用)。
warikomi
call cwait //0.5-1s待ち
sb rb.7 //もう一度チェック
goto warikominot //押されてなければ、addしない。
add intervala,#01h
warikominot
clrb rbif
retfie
お願いします。
No.1ベストアンサー
- 回答日時:
普通「チャタリング」っていうとせいぜい数十ms くらいを想定するものだと思うんだけど....
0.5s~1s って, どんなチャタ?
ついでにいうと (聞いても答えられないような気はしますが)「長押しするとおかしな動作をする」といわれても, 「押し続ける時間」「期待する動作」「実際の動作」を示さないと解決できないかもしれませんよ.
No.2
- 回答日時:
チャタリング防止の方法の考え方を書きます。
チャタリングは、最悪に長くて50msぐらいですので、0.5秒も待つ必要はありません。
処理は、1msぐらいにサンプリングして同じ状態が10回程度続けば、その状態で安定したと見なしてスイッチの値を変更します。
プログラムを見てみると。
>warikomi
>call cwait //0.5-1s待ち
>sb rb.7 //もう一度チェック
>goto warikominot //押されてなければ、addしない。
>add intervala,#01h
>warikominot
>clrb rbif
>retfie
(1)RB7の割り込みを使っている?
(2)割り込みでステータスとか退避していないけど大丈夫?
(3)割り込みで0.5-1s待ちするなら割り込みは意味が無いどころか害がある。waitなど使わずにすぐリターンすること。
(4)sbってBTFSC?というかスイッチがON/OFF両方のパターンを処理していないのでうまく動作するはずが無い。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- その他(ビジネス・キャリア) グーグルの障害者訓練プログラム募集あるがどうだろ?6時間勤務で月収22万!! 1 2023/02/17 20:36
- 工学 1つのタクトスイッチで複数の並列回路を閉じ、アースにつなげることができるスイッチはありますか。 2 2022/08/06 10:38
- 陸上 陸上ルール 2 2022/06/20 06:29
- 物理学 Scratchの簡単なプログラム 2 2023/04/09 08:31
- その他(暮らし・生活・行事) 今のコンセントの形式は 1 2022/06/08 22:22
- その他(プログラミング・Web制作) Scratch プログラミングについての質問です 1 2022/06/14 19:42
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- Excel(エクセル) Changeイベントを使用して重複チェックをしたい 2 2023/08/02 11:47
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Amazonfireタブレットにわから...
-
スーパーのレジで並んでいたら...
-
一定時間操作がなかったら、と...
-
マイコン C言語 割り込み処理...
-
電車のドアの前での並び方
-
PICでのプログラムによるチャタ...
-
割り込み中に例外異常
-
システムの割り込みについて シ...
-
PICのPWMの正しい使い方につい...
-
複数の割込み処理からアクセス...
-
電車で待機列の割り込みについ...
-
PICによる7セグLED3桁制御
-
割り込み処理から引数を取得す...
-
【組込み】割り込み中のstatic...
-
VB.net 割り込みの禁止
-
USB機器からのデータ受信による...
-
Chat GPTに、課題として、二と...
-
Macターミナルで実行中のプログ...
-
TCP/IP通信時のサーバーからの受信
-
タスクマネージャーのプロセス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ショッピング
-
スーパーのレジで並んでいたら...
-
pic 複数の割り込み関数 切り分...
-
マイコン C言語 割り込み処理...
-
Amazonfireタブレットにわから...
-
CPUの処理量を減らすコーデ...
-
irqbalance って
-
CPU負荷率の安全な上限と計...
-
一定時間操作がなかったら、と...
-
電車で待機列の割り込みについ...
-
VB6でSendKeyを利用したTab移動...
-
(H8マイコン)タイマ割込で変更...
-
駅のトイレでナイチンに邪魔さ...
-
アセンブラのタイマー割り込み
-
PICのPIN変化割り込みに...
-
USJでの割り込み
-
H8マイコンで割り込みが任意の...
-
PIC16F84AのRBポート変化割り込...
-
AKI-H8/3048Fでのタイマ割り込み
-
H8マイコンでの割り込み(シリ...
おすすめ情報