このQ&Aは役に立ちましたか?
picの割り込みに関する問題解決後に別の問題が発生
2010/03/16 20:33
- picの割り込みに関する問題を解決した後、別の問題が発生しています。
- while(1)を1回処理した後、動作が停止し、割り込みも受け付けなくなります。
- 質問者は、while(1)の先頭部に動作確認用のled点滅プログラムを入れていますが、入力があった場合の処理が終了した後にledが点滅しないという問題が発生しています。
picのループ
昨日、picの割り込みに関してご質問させていただいたものです。
割り込みに関しては皆様のおかげで解決できましたが、別の問題に直面いたしました。
while(1)を1回処理した後は、動作が停止してしまい、割り込みも受け付けなくなってしまいます。
#INT_RB//割り込み定義
void RB_isr(){
割り込み処理
}
void main()
{
while(1)
{
output_low(PIN_C4);
delay_ms(200);
output_high(PIN_C4);
delay_ms(200);
//自動起動ボタンONで起動
if(input(PIN_B6) == 0)
{
入力があった場合の処理
}
}
}
上記のように、while(1)の先頭部に動作確認用のled点滅プログラムをいれていますが、入力があった場合の処理が終了した後はledも点滅しません。
入力があった場合の処理の最後にリレーをoffしているのですが、その処理はきちんと行われています。
どうしてこのようなことがおこるのか分かる方がいらっしゃいましたら、ご教授ねがいます。
質問者が選んだベストアンサー
割り込み内で割り込みのフラグをリセットしていますでしょうか?
CPUのデータシートに書かれています。
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
お礼
2010/03/17 16:30
ご回答ありがとうございます。
cpuの仕組みについての知識が足りなかったようです。
フラグをリセットすることで正常に機能いたしました。
いつもありがとうございます。