このQ&Aは役に立ちましたか?
2019/11/13 11:35
お世話になっております。
表記の件です。
PICプログラミング初心者で現在勉強中です。
自分で作成したプログラミングが正常に動作せず、わかる範囲でいろいろ試しましたが解決できなかったので投稿させて頂きます。
【IO】
入力:黄LED、赤LED
出力:ボタン2個
【基本動作】
電源ON→黄LED点灯、赤LED消灯→ボタンA ON→10秒カウント、黄LED点滅、赤LED点灯。
・カウント中にボタンB ON→最初に戻る
・カウント完了→黄LED消灯、赤LED点滅→ボタンB ON→最初に戻る
以上のプログラムを作成しました。
【問題点】
ボタンA、各LED、10秒カウントは正常に動作しています。しかし、ボタンBで最初に戻る動作がうまく動きません。ボタンBを押しても反応しない時が有ります。ボタンBを普通に押して反応する時もあれば、長めに押さないと反応しない時があります。
配線やボタンを交換しても改善されませんでした。
if文を各点滅間に入れてみましたが改善されませんでした。
点滅が絡まないところに持って行くと正常に動作しました。
プログラムを添付致します。
お手数ですがご教示の程、よろしくお願いいたします。
また、こうした方が全体的によくなる等ございましたらよろしくお願いいたします。
以上、よろしくお願いいたします。
RA2やRA3がボタン入力に対応していると思いますが
チャタリング対策やノイズ対策は行っていますか?
https://www.marutsu.co.jp/pc/static/large_order/1405_311_ph
https://tool-lab.com/make/macpic-startup-27/
動作不具合がある場合、MPLABシミュレータなどでシミュレートしてみて
プログラム自体には問題がないかを確認するのが第一歩かと思います
原因がハードウェアに限定できれば、対策も容易になりますよ。
[技術者向]のカテですから標準的手順のデバッグを行った後で質問しましょう。
TIGANS様
お世話になっております。
毎回ご回答いただきましてありがとうございます。
シュミレーターを一応やってみましたが、理解できず挫折をし質問してしまいました。
もう一度、トライしてから再度質問をさせて頂きます。
以上、ありがとうございました。
2019/11/13 20:53
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
諸悪の根源は
if(RA2==0){
でしょうかねぇ
これでRA2がOFF条件で無限ループ
if文でなくcase文
http://www9.plala.or.jp/sgwr-t/c/sec06-5.html
無限ループを抜けるにはbrake
http://www9.plala.or.jp/sgwr-t/c/sec06-8.html
gotoは言語道断
https://marycore.jp/coding/why-goto-statement-is-bad/
初心者は使ってはイケナイ
lumiheart様
お世話になっております。
返信ありがとうございます。
各URL拝見させていただきました。
もう一度見直してみます。
またご質問させて頂きます。
ありがとうございました。
2019/11/15 15:36
ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。