解決済み

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

  • 困ってます
  • 質問No.9590387
  • 閲覧数125
  • ありがとう数3
  • 気になる数1
  • 回答数3
  • コメント数0

お礼率 0% (0/3)

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

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

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

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

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

  • 回答No.3

ベストアンサー率 17% (124/700)

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


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

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

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

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 42% (410/966)

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

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

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

ベストアンサー率 66% (10/15)

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

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

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

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集

ピックアップ

ページ先頭へ