第 9 章 スペシャルファンクションレジスタ
13.4 タイマ機能
13.4.6 プログラマブルパルスジェネレート(PPG)モード
13.4.6.3
レジスタのバッファ構成(1)
テンポラリバッファTMP89CM46
は8
ビットのテンポラリバッファを内蔵しており、TA0DRAL (TA0DRBL)
に対してライト命令を実行すると、ダブルバッファの有効/無効に関係なく先ずこのテンポラリ バッファにそれぞれデータが格納されます。次に
TA0DRAH (TA0DRBH) に対してライト命
令を実行すると、設定値はダブルバッファまたはTA0DRAH (TA0DRBH)
にデータが格納さ れます。同時にテンポラリバッファの設定値はダブルバッファまたはTA0DRAL (TA0DRBL)
にデータが格納されます。(下位レジスタと上位レジスタの設定値が同時に有効になる構造 となっています)
。よってTA0DRA (TA0DRB)
にデータを設定する場合は、必ずTA0DRAL
、TA0DRAH (TA0DRBL、TA0DRBH)の順に書き込んでください。
テンポラリバッファの構成は図
13-1
を参照してください。(2)
ダブルバッファTMP89CM46
は、TA0CR<TA0DBF>
の設定によりダブルバッファを利用することができます。
TA0CR<TA0DBF>
を"0"
に設定するとダブルバッファが無効に、TA0CR<TA0DBF>
を"1"に設定するとダブルバッファが有効となります。
ダブルバッファの構成は図
13-1
を参照してください。-
ダブルバッファが有効の場合タイマ動作中に
TA0DRAH (TA0DRBH)に対してライト命令を実行すると、設定値
は先ずダブルバッファに格納され、TA0DRAH/L
はすぐには更新されません。TA0DRAH/L (TA0DRBH/L)
は前回の設定値でアップカウンタと比較を行い、値が一致すると
INTTCA0
割り込み要求が発生し、ダブルバッファの設定値がTA0DRAH/
L (TA0DRBH/L)
に格納されます。以降は新しい設定値で一致検出が行われます。なお、TA0DRAH/L (TA0DRBH/L)に対してリード命令を実行すると、TA0DRAH/
L (TA0DRBH/L)
の値(
現在の有効値)
では無く、ダブルバッファの値(
最後に設定した値)が読み出されます。
タイマ停止中に
TA0DRAH/L (TA0DRBH/L)
に対してライト命令を実行すると、設 定値はダブルバッファとTA0DRAH/L (TA0DRBH/L)の両方にすぐに反映されます。
-
ダブルバッファが無効の場合タイマ動作中に
TA0DRAH (TA0DRBH)
に対してライト命令を実行すると、設定値はすぐに
TA0DRAH/L (TA0DRBH/L)に更新され、以降は新しい設定値で一致検出が
行われます。
このとき
TA0DRAH/L (TA0DRBH/L)
に設定した値がアップカウンタの値より小さかった場合、アップカウンタが一度オーバーフローした後、新しい設定値で一致検 出が行われるため、出力パルス幅が設定した時間よりも長くなる場合があります。
これが問題となる場合は、ダブルバッファを有効にして使用してください。
タイマ停止中に
TA0DRAH/L (TA0DRBH/L)
に対してライト命令を実行すると、設 定値はすぐにTA0DRAH/L (TA0DRBH/L)に反映されます。
Page 167
ソースクロック
カウンタ
タイマスタート
1 0
n
m
m (デューティパルス)
m (デューティパルス)
n (1周期)
r (デューティパルス)
s (1周期) s
r TA0DRAL,Hのライト
TA0DRBL, Hのライト
TA0DRAL, H 一致検出
一致検出
nをライト sをライト
mをライト rをライト
タイマストップ時は TA0TFFの設定レベルになる
割り込み要求で 反映される
TA0TFFの設定 レベルに戻る カウンタ
クリア
INTTCA0割り込み要求
2 m m+1 1
n
0 0
TA0DRBL, H TA0CR<TA0S>
タイマストップ
一致検出
一致検出
カウンタ クリア
2 r r+1 1 r r+1
s 0
一致検出 TA0MOD<TA0TFF>
PPG0端子出力
連続 (TA0CR<TA0MPPG>=”0”) ダブルバッファ(TA0MOD<TA0DBE>=”1”)
r (デューティパルス)
ソースクロック
カウンタ
タイマスタート
1 0
n
m
n (1周期) TA0DRAL,Hのライト
TA0DRBL, Hのライト
TA0DRAL, H 一致検出
一致検出 nをライト
mをライト
タイマストップ時は TA0TFFの設定レベルになる
TA0TFFの設定 レベルに戻る カウンタ クリア
INTTCA0割り込み要求
2 m m+1
n 0
TA0DRBL, H TA0CR<TA0S>
自動的に タイマストップ
TA0MOD<TA0TFF>
PPG0端子出力
単発 (TA0CR<TA0MPPG>=”1”)