本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:picのループ)

picの割り込みに関する問題解決後に別の問題が発生

2023/09/06 15:56

このQ&Aのポイント
  • picの割り込みに関する問題を解決した後、別の問題が発生しています。
  • while(1)を1回処理した後、動作が停止し、割り込みも受け付けなくなります。
  • 質問者は、while(1)の先頭部に動作確認用のled点滅プログラムを入れていますが、入力があった場合の処理が終了した後にledが点滅しないという問題が発生しています。
※ 以下は、質問の原文です

picのループ

2010/03/16 20:33

昨日、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しているのですが、その処理はきちんと行われています。
どうしてこのようなことがおこるのか分かる方がいらっしゃいましたら、ご教授ねがいます。

質問者が選んだベストアンサー

ベストアンサー
2010/03/16 23:03
回答No.1

割り込み内で割り込みのフラグをリセットしていますでしょうか?
CPUのデータシートに書かれています。

お礼

2010/03/17 16:30

ご回答ありがとうございます。
cpuの仕組みについての知識が足りなかったようです。
フラグをリセットすることで正常に機能いたしました。
いつもありがとうございます。

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。