10

21

コメント

マイコンのタイマー設定でよくありがちな間違い

おはようございます。ビーコンの菅原です。



他人が作ったマイコンのソフトウェアをメンテナンスすることもありますが、タイマに関してよく見かける間違いがあるので一言・・


1mSecを得るのに10000 カウントして割り込みを発生したい場合。
0からカウントアップするタイマーの場合では
コンペアマッチの設定は -1した 9999でなくてはならない。

この場合、10000 と設定すると 1msec毎の割り込みが必要なのに、1.0001mSec毎の割り込みが入ります。


キー入力とか、表示の点滅制御などに使う場合には問題になりませんが、この割り込み回数をカウントして時間計測などする処理だと、カウント値が微妙にちがうというようなバグになります。

マイコンの制御でタイマーは無くてはならないものですが、初心者の場合は躓きやすいところです。

タイマー割り込みでポート出力を反転して、波形計測できるオシロスコープを使ったり、周波数カウンタを使ったりして正しい間隔で割り込みが入っているかを確認すると良いでしょう。


では。

DAI

万年初心者の素人ですが、この種の話題には興味があります。

さて、この間違い、スタートが1からではなく、0から始まるからと解釈したのですが、
間違いありませんか。

10

25

10:27

ビーコン菅原

DAIさんこんにちは。
そのとおりです。0から始まります。
いままで経験したマイコンはこうでしたよ。
では。

10

25

12:48

管理者にだけ表示を許可する

この記事のトラックバックURL

http://kkbecon.blog8.fc2.com/tb.php/68-9db87e8f

プロフィール

ビーコン菅原

Author:ビーコン菅原
組み込み始めてそろそろ25年。マイコンとか電子回路が大好きなんですよー

メールフォーム

名前:
メール:
件名:
本文:

Twitter

カウンター(UV)

月別アーカイブ

10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09  03  02  01  12  11  10  09  07  05  02  12  10  09  08  07  05  04  03  11  09  08  07  06  03  02  01  12  11  10  09  08  07  06  05  04  02  12  11  10  08  02  12 

QRコード

QRコード

Designed by

Ad