3)スイッチをスキャンする |
|
プッシュスイッチのスキャンについて チャタリング(10msec)より十分長い一定時間でスキャンします。スイッチをプルアップしている場合は、スキャン周期ごとに1ならOFF、0ならONという判定ができます。というのは、チャタリングがあると極小的には1と0がバタバタしますが、チャタリングが収まり次のスキャンで確実に1か0か固定されているので良いわけです。下図のCが一番厳しい条件ですが、これも1から0になったときにチャタリングが起こっていると仮定しても、1Scan周期分スイッチを押したと判断できます。つまり自分はスキャン周期以下の10msecしかボタンを押さないという人がいない限り、どこかでひっかかり大丈夫なわけです。
|
|
プログラム |
|
スイッチスキャンプログラム 基板上の2つのプッシュスイッチをScan周期(16msec)で読み取りON/OFFおよびONになった回数(0から9の繰り返し)を表示します。また今回はクロック(MCLK)の1MHzと6MHzの片方1つをソース上で切り替えられるようにしてあります。 さらに lcd.c lcd.h を最新版にしました。クロック(MCLK)が6MHzでも動くように調整しています。 sw1,sw2ともにOFFの状態
sw2を押しました。数字はOFFからONになった回数です。 チャタリングなく、正しくカウントしています。
sw2がOFFの状態に戻った様子
EW430版 ダウンロード(zipファイル) Ver1.0 2007.1.26 mspgcc版 ダウンロード(zipファイル) Ver1.0 2007.1.26
|