第 8 章 16 ビットタイマカウンタ 1 (TC1)
8.3 機能
8.3.5 パルス幅測定モード
パルス幅測定モードは、
TC1
端子の入力パルスをトリガにしてカウントをスタートし、入力パル ス幅を内部クロックで測定するモードです。カウントスタート用のトリガのエッジは、TC1CR<TC1S>
によって、立ち上がりエッジ、または立ち下がりエッジのいずれかを選択することができます。また キャプチャを行うエッジは、TC1CR<MCAP1>によって、片エッジまたは両エッジのいずれかを選択 することができます。
・
TC1CR<MCAP1>=“1”(
片エッジキャプチャ)
の場合H
レベルまたはL
レベルのいずれか一方の入力パルス幅を測定することができます。H
レベルの入力パルス幅を測定する場合はTC1CR<TC1S>
を立ち上がりエッジに、L
レベルの 入力パルス幅を測定する場合はTC1CR<TC1S>を立ち下がりエッジに設定してください。
タイマスタート後、カウントスタート用のトリガのエッジと逆方向のエッジを検出する と、アップカウンタの内容を
TC1DRB
に取り込み、INTTC1
割り込み要求を発生します。こ のときアップカウンタはクリアされます。その後カウントスタート用のトリガのエッジを検 出するとアップカウンタはカウントアップを再開します。・
TC1CR<MCAP1>=“0”(両エッジキャプチャ)の場合
H
レベルと周期、またはL
レベルと周期のいずれかの入力パルス幅を測定することがで きます。Hレベルと周期を測定する場合はTC1CR<TC1S>を立ち上がりエッジに、L
レベル と周期を測定する場合はTC1CR<TC1S>
を立ち下がりエッジに設定してください。タイマスタート後、カウントスタート用のトリガのエッジと逆方向のエッジを検出する と、アップカウンタの内容を
TC1DRB
に取り込み、INTTC1割り込み要求を発生します。ア ップカウンタはカウントアップを継続し、その後カウントスタート用のトリガのエッジを検 出すると、アップカウンタの内容をTC1DRB
に取り込み、INTTC1
割り込み要求を発生しま す。このときアップカウンタはクリアされた後、カウントアップを継続します。注
1)
キャプチャ値は、次のトリガエッジが検出されるまでにTC1DRB から必ず読み出してください。読み出し
を行わない場合、キャプチャ値は不定となります。このときTC1DRB は、16 ビットアクセス命令による読
み出しを推奨します。注
2)
片エッジキャプチャ時、キャプチャ後のカウンタは次のエッジを検出するまで “1”で停止するため、2 回目 のキャプチャ値は、スタート直後のキャプチャ値よりも “1”大きくなります。注
3)
タイマスタート後の最初のキャプチャ値は不定となりますので、タイマスタート後の1周期目のキャプチャ 値は読み捨ててください。TMP86FH47BUG
第8
章16
ビットタイマカウンタ1 (TC1)
8.3
機能Page 78
(プログラム例)デューティの測定。 (分解能
fc/2
7[Hz] 時)
CLR (INTTC1SW). 0 ; INTTC1のサービススイッチの初期設定 (INTTC1SW):
INTTC1ごとに反転するように設定したアドレス
LD (TC1CR), 00000110B ; TC1のモード, ソースクロックを設定
DI ; IMF = “0”
SET (EIRL). 7 ; INTTC1割り込みを許可。
EI ; IMF = “1”
LD (TC1CR), 00100110B ; MCAP1 = 0でTC1を外部トリガスタート。
:
PINTTC1: CPL (INTTC1SW). 0 ; INTTC1割り込み, INTTC1のサービススイッチの
反転/テスト
JRS F, SINTTC1
LD A, (TC1DRBL) ; TC1DRBの読み出し (“H” レベルパルス幅)
LD W,(TC1DRBH)
LD (HPULSE), WA ; “H” レベルパルス幅をRAMに格納
RETI
SINTTC1: LD A, (TC1DRBL) ; TC1DRBの読み出し (周期)
LD W,(TC1DRBH)
LD (WIDTH), WA ; 周期をRAMに格納
:
RETI ; デューティ計算
:
VINTTC1: DW PINTTC1 ; INTTC1割り込みベクタ設定
WIDTH HPULSE
TC1┵ሶ INTTC1 INTTC1SW
TC1DRB
INTTC1ഀࠅㄟߺⷐ᳞
TC1┵ሶജ
ࠞ࠙ࡦ࠲
ౝㇱࠢࡠ࠶ࠢ
(a) ࠛ࠶ࠫࠠࡖࡊ࠴ࡖ (MCAP1 = "1")
2 3 n
ࠞ࠙ࡦ࠻ࠬ࠲࠻ ࠞ࠙ࡦ࠻ࠬ࠲࠻
࠻ࠟ (TC1S = "10")
1 3
2
1 4
0
n 0
ࠠࡖࡊ࠴ࡖ n - 1
[ᔕ↪] "H"ࡌ࡞߹ߚߪ"L"ࡌ࡞ߩࡄ࡞ࠬߩ᷹ቯ
TC1DRB
INTTC1ഀࠅㄟߺⷐ᳞
TC1┵ሶജ
ࠞ࠙ࡦ࠲
ౝㇱࠢࡠ࠶ࠢ
(b)ਔࠛ࠶ࠫࠠࡖࡊ࠴ࡖ (MCAP1 = "0")
1 2 n
ࠞ࠙ࡦ࠻ࠬ࠲࠻ ࠞ࠙ࡦ࠻ࠬ࠲࠻
(TC1S = "10")
3 2
1 4
0
n
ࠠࡖࡊ࠴ࡖ ࠠࡖࡊ࠴ࡖ
n + 1
[ᔕ↪] (1) ᦼ߹ߚߪᵄᢙߩ᷹ቯ (2)࠺ࡘ࠹ࠖߩ᷹ቯ
m - 2 n + 3
n + 2
n + 1 m - 1 m 0
m