HOME

 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

 

 

inserted by FC2 system