• ベストアンサー

AVRマイコン

AVRマイコンで5分間だけある処理(例:LEDの点滅など)を繰り返し行い、処理が途中(例:LEDが点滅中)であっても5分たったらその処理を終了させたいのですが、どのようなプログラムを組めばよいのでしょうか。 ご回答よろしくお願い致します。

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

  • ベストアンサー
  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.1

AVRマイコンと言っても種類は多岐に渡るので必ずこの方法でできるとは保証できませんが、一般にはこんな手を使うよ、という話をします。 前置き (1)16bitタイマのカウントクロックを31.25kHz、コンペア一致クリアにしておく。 (2)コンペアレジスタに31250(0x7a12)を入れておく。 (3)これでタイマは1秒ごとに一致割り込みを発生します。 (4)割り込み処理で、レジスタなりメモリをインクリメントするようにする。 (5)60×5=300(0x12c)に達したら5分経過したって判ります。 本番 (1)フラグをセットし、タイマを動作させます。 (2)LED点滅などのループ処理の最後でフラグをチェックし、セットされてたらループを繰り返します。 (3)上述した割り込み処理で300になったらフラグをリセットします。 もう判りましたね。もしかするとコンペアレジスタの値は31249(0x7a11)かもしれないけど、それは自分で調整してください。

sp778
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A