• ベストアンサー

picの割り込み?タイマー?の使い方について

私はPICやAVRでLチカができる程度のC言語使いです。 以下のようなことがしたいのですが、フローチャートが書けなくて困っております。 お力添えいただければ幸いです。 〇あるリレーがあり、それのスイッチを押すと10秒動作する。 〇その動作時間中も、ほかの制御は継続したい。 たったこれだけがどうしてもわからず... お助けください。

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

  • ベストアンサー
  • hahaha8635
  • ベストアンサー率22% (801/3611)
回答No.3

割り込み自体を理解してないと難しい https://monoist.atmarkit.co.jp/mn/articles/1001/26/news116_2.html 基本時に2重割り込みの禁止 割り込み中に割り込みが発生すると まず暴走する 割り込みの禁止と解除 ↑ と 同様 ただし割り込み禁止のままメインに戻ると割り込みができない 割り込みの処理で重い処理にしない メインに戻ってこなくなります どのタイミングででも割り込まれる

その他の回答 (2)

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.2

一例 1ms タイマ割り込みで、 cnt カウンタが0ならば何もしない cnt カウンタを-1減算 cnt カウンタが0ならばリレー停止 割り込み終了 メインプログラムでスイッチが押されたら、リレー作動 cnt=10000 (10秒) をセットするとタイマ割り込みで10秒後にリレーがoffになります スイッチを割り込みで処理すれば、メインでのスイッチ監視も不要です

  • kaba__san
  • ベストアンサー率46% (28/60)
回答No.1

タイマー割込み等を使ってtickと呼ばれる時計を作るのです。 Arduino環境だとmillis()で読み取れる値がそれで標準で組み込まれています。 それさえ作れば後は簡単。 ONした時間を記録しておき、他の処理をしつつ経過時間をチェックするだけです。 カップラーメンにお湯を注ぎ、出来上がるまでに他の事をする場合、あなたはどうやってカップラーメンが出来たことを知りますか?

関連するQ&A