![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
7セグLEDを使って,押しボタンスイッチの押した回数(0~9)を7セグで表示するプログラムをHitec社のPIC CLiteで作りたいのですが,押しボタンを押しても回数がランダムで表示されてしまいます.どういったところを直したらいいでしょうか?
***プログラム***
ボタンスイッチを押したぶんだけ数値をカウントする
main{
while(1){
if(RA0==0){ …押しボタンのポート
++a;
{
if(a>=10){ …10回押したら0になる
a=0;
}
↓7セグに出力
RB4=a%2;
RB5=(a/2)%2;
RB6=(a/4)%2;
RB7=a/4;
}
}
No.1ベストアンサー
- 回答日時:
コンパイラの問題よりも、ハードウエア構成が全く提示されていないので
答えようがないですね。
とりあえず、PB4~7の各ビットに7セグデコーダでもついているのでしょうか?
この部分が問題ないと仮定し、質問内容が「押しボタン回数がランダムに
記録されている」というところに限定しておきますね。
回路がどのように構成されているかはわかりませんが、最初の押しボタン検出ループで、押されている間はず~~とカウントアップするわけですね。
作成意図はたぶん押された回数を取得したいということでしょうから、これでは意図した結果にならないとおもいます。
ではどうすればよいのでしょうか。オーソドックスな解答では
微分をとればよい、ということになるのでしょう。
つまり、
前回のキーセンスでは押されていない
かつ
今回のキーセンスでは押されている
という条件をみればよいのです。
ただし、ハード的にボタンのチャタリングがとれていれば、の話ですが。
チャタリング防止回路がないばあいには、チャタリングがとれるのに十分な時間をおいて複数回の検出をおこなうことになるとおもいます。
とりあえず、答えられるのはこれくらいでしょうか。
がんばってくださいね。
ありがとうございます.
チャッタリング防止回路がないので,十分な時間を取ることにしました.
if(RA0==0){
DelayMs(10);
if(RA0==0){
++up_1;
}
}
No.2
- 回答日時:
ボタンスイッチのポートの読み方がよくありません。
ポートを直接読んでいるのが誤りです。
ボタンスイッチのポートの読みをスイッチの立ち上がりエッジでスイッチONとするような処理を入れないとうまく行きません。
インターバル・タイマーを使ってボタンスイッチのポートの読みを立ち上がりエッジで捕らえるように改造するとうまく行くと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 工学 1つのタクトスイッチで複数の並列回路を閉じ、アースにつなげることができるスイッチはありますか。 2 2022/08/06 10:38
- Visual Basic(VBA) Powerpointでランダムな数字の結果を表示するマクロ 2 2023/08/04 10:04
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
- その他(趣味・アウトドア・車) Arudino nanoが正常に動作しない原因 1 2022/10/30 18:29
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
- その他(プログラミング・Web制作) micropythonコード 修正 1 2023/06/13 17:22
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このプログラミング言語のfor分...
-
Pythonで仮想通貨の自動売買が...
-
ウェブサイトのアクセスログに...
-
AIの登場でプログラマーたちが...
-
Googleタグマネージャで、既存H...
-
Google ColaboでGUI作成
-
vba クリップボードクリアにつ...
-
htaccessで特定のディレクトリ...
-
JRのjsonファイルって使って大...
-
{ CONTROL Forms.Label.1}が...
-
P2P地震速報のEEW APIの仕様書...
-
パイソン。スクレイピング。Chr...
-
Trix のツールバー(?)を上では...
-
UDP通信を使うチャットプログラ...
-
Version Control on Unity
-
プログラミングサイトについて。
-
VBAでパワーシェルを実行したい...
-
Webサイト内に埋め込んだmp4動...
-
家庭のパソコンで Python の 環...
-
Pythonを勉強中で、初歩的です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ちょびっつ」について
-
スイッチングハブのMACアドレス
-
スパニングツリーについて
-
スイッチの末端の接続可能PC台...
-
ネットワークにある不明なIPを...
-
LANケーブルのカテゴリの性...
-
マルチプルダイナミックVLANに...
-
高性能なスイッチングハブが欲...
-
リピータハブとL2スイッチの違...
-
L3スイッチとL2スイッチを使っ...
-
回線速度の実験
-
DHCPについて教えてください。
-
VLAN
-
スイッチの事を教えてください
-
PIC CLITEでデジタルカウンタを...
-
RT,SWにNICは入っている?
-
NW上の2点間の通信は自動的に...
-
スイッチのMACアドレスいついて
-
VTPは実務でよく使われているで...
-
成端と整端どっち?
おすすめ情報