オーバーフロー割り込みでの割り込み周期(周波数)計算
2020年2月4日:Arduinoのタイマー OCRレジスタは「n」じゃなく「n - 1」の値を設定せよ
てなことを論じました。
この時はコンペアマッチ割り込みで一定周期(周波数)の
タイミングを得ようというものでした。
同じようなことがオーバーフロー割り込みでも言えるのです。
8ビットタイマーでのオーバーフロー割り込みの発生タイミングは
「255の次」のクロックです。
その時にTCNTの値を書き換えて、所定の周期を得ます。
こんな感じになります。
・オーバーフロー発生タイミングは255の次のクロック
:
253
254
255
0 → OVF発生 → TCNT書き換え
TCNT+1
TCNT+2
:
TCNTを書き換えなければ255→0→1とカウントが進み
クロックの256倍の割り込み周期(1/256の周波数)が
得られます。
TCNTの書き換え値を「254」にすると、
255
0 → OVF → 254
255
0 → OVF → 254
255
0 → OVF → 254
255→254→255→254…と2クロックサイクルで割り込みが
発生します。
クロック数は「256-254」で得られ、設定数は「256-2」で
計算できます。
書き換え値が253の時は
255
0 → OVF → 253
254
255
0 → OVF → 253
255
254
0 → OVF → 253
「256-253」で3クロックサイクルで割り込み発生します。
さて、vabenecosiさんの簡易パルスジェネレータの製作(ソフト編)
この中に置かれているソースファイル:
・2018/2/8 上記に加えてアイドル時の自動画面切り替え表示機能を追加 Simplified_PG_v5r4
をご覧ください。
#define tcnt2base 102 // timer2のTCNT2のBOTTOM値
// 102で約10ms(CK/1024)
ISR(TIMER2_OVF_vect) { …タイマー2のオーバーフロー割り込み
TCNT2 = tcnt2base; …102を設定
t2ovfCnt += 1;
if (t2ovfCnt >= timeout) {
timeoutFlg = true; // タイムアウトフラグをセット
t2ovfCnt = t2ovfCnt - timeout;
}
}
このように10msの割り込み周期を得るのに、
「64usクロックで102」をTCNTに設定されています。
※これだと、ちょっと狂ってしまうのです。
この設定102前後の様子を見てみましょう。
クロックが64us=15.625kHzの時。
TCNT設定値 割り込み周期
254 (256-254) 2パルス 0.128ms 7.8125kHz
253 (256-253) 3パルス 0.192ms 5.208kHz
:
102 154パルス 9.856ms 101.46Hz
101 155パルス 9.920ms 100.81Hz
100 156パルス 9.984ms 100.16Hz
99 157パルス 10.048ms 99.52Hz
15.625kHzから100Hz(10ms)を得るのですから
分周比の近似値は「156」。
ということは「256-156」で、割り込みの時に「100」
をTCNTに書き込まなくてはなりません。
102だと、10msより短い周期になってしまいます。
※テストプログラム PB2~PB5ポートに観察用パルスを出してます。
・ダウンロード - test_tm2_ovf.txt
※インプットキャプチャーとオーバーフローのタイミングは
↓で出しています。
Arduino デューティー計測のためのインプットキャプチャータイミング
| 固定リンク
「Arduino」カテゴリの記事
- 1/nカウント方式とDDS方式の2相パルス発生回路(2024.10.13)
- おっと。map関数の計算桁に注意(2024.10.06)
- DDS方式の2相パルス発生回路、周波数スキャン機能を付ける(2024.10.05)
- 1クロックでも速くしたい 割込を「ISR_NAKED」で(2024.09.30)
- 1クロックでも速くしたい DDS方式の2相パルス発生器(2024.09.27)
「割り込み処理」カテゴリの記事
- 1クロックでも速くしたい 割込を「ISR_NAKED」で(2024.09.30)
- 1クロックでも速くしたい DDS方式の2相パルス発生器(2024.09.27)
- 最適化処理のせいで悩んだぞ 呪文volatile再び(2024.06.06)
- I2C液晶のアクセス、割り込みで処理しないようにすると(2024.04.12)
- I2C液晶のアクセス、割り込み処理で遅れる原因らしきもの(2024.04.07)
コメント