こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

私はPICやAVRでLチカができる程度のC言語使いです。

以下のようなことがしたいのですが、フローチャートが書けなくて困っております。
お力添えいただければ幸いです。

〇あるリレーがあり、それのスイッチを押すと10秒動作する。
〇その動作時間中も、ほかの制御は継続したい。

たったこれだけがどうしてもわからず...
お助けください。

投稿日時 - 2019-02-22 09:30:57

QNo.9590387

困ってます

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

割り込み自体を理解してないと難しい
https://monoist.atmarkit.co.jp/mn/articles/1001/26/news116_2.html


基本時に2重割り込みの禁止 割り込み中に割り込みが発生すると まず暴走する
割り込みの禁止と解除 ↑ と 同様 ただし割り込み禁止のままメインに戻ると割り込みができない

割り込みの処理で重い処理にしない メインに戻ってこなくなります

どのタイミングででも割り込まれる

投稿日時 - 2019-02-23 14:22:51

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

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

一例
1ms タイマ割り込みで、
cnt カウンタが0ならば何もしない
cnt カウンタを-1減算
cnt カウンタが0ならばリレー停止
割り込み終了

メインプログラムでスイッチが押されたら、リレー作動 cnt=10000 (10秒) をセットするとタイマ割り込みで10秒後にリレーがoffになります

スイッチを割り込みで処理すれば、メインでのスイッチ監視も不要です

投稿日時 - 2019-02-22 10:26:44

ANo.1

タイマー割込み等を使ってtickと呼ばれる時計を作るのです。
Arduino環境だとmillis()で読み取れる値がそれで標準で組み込まれています。

それさえ作れば後は簡単。
ONした時間を記録しておき、他の処理をしつつ経過時間をチェックするだけです。

カップラーメンにお湯を注ぎ、出来上がるまでに他の事をする場合、あなたはどうやってカップラーメンが出来たことを知りますか?

投稿日時 - 2019-02-22 10:19:02

あなたにオススメの質問