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

解決済みの質問

AVRマイコン

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

投稿日時 - 2008-09-26 14:51:07

QNo.4358000

すぐに回答ほしいです

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

AVRマイコンと言っても種類は多岐に渡るので必ずこの方法でできるとは保証できませんが、一般にはこんな手を使うよ、という話をします。

前置き
(1)16bitタイマのカウントクロックを31.25kHz、コンペア一致クリアにしておく。
(2)コンペアレジスタに31250(0x7a12)を入れておく。
(3)これでタイマは1秒ごとに一致割り込みを発生します。
(4)割り込み処理で、レジスタなりメモリをインクリメントするようにする。
(5)60×5=300(0x12c)に達したら5分経過したって判ります。

本番
(1)フラグをセットし、タイマを動作させます。
(2)LED点滅などのループ処理の最後でフラグをチェックし、セットされてたらループを繰り返します。
(3)上述した割り込み処理で300になったらフラグをリセットします。

もう判りましたね。もしかするとコンペアレジスタの値は31249(0x7a11)かもしれないけど、それは自分で調整してください。

投稿日時 - 2008-09-26 15:56:53

お礼

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

投稿日時 - 2008-09-29 15:34:43

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

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

回答(1)

あなたにオススメの質問