第 5 章 入出力ポート
7.2 デバイダ出力 (DVO)
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回目のキャプチャ 値は読み捨ててください。
( プログラム例 )デューティの測定。 (分解能fc/27 [Hz] 時)
CLR (INTTC1SW). 0 ; INTTC1のサービススイッチの初期設定 (INTTC1SW):
INTTC1ごとに反転するように設定したアドレス
LD (TC1CR), 00000110B ; TC1のモード, ソースクロックを設定
DI ; IMF= “0”
SET (EIRL). 5 ; 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
第 8章 16ビットタイマカウンタ1 (TC1)
8.2 制御 TMP86CK74AFG
図 8-6 パルス幅測定モード
TC1DRB
INTTC1ഀࠅㄟߺⷐ᳞
TC1┵ሶജ
ࠞ࠙ࡦ࠲
ౝㇱࠢࡠ࠶ࠢ
(a) ࠛ࠶ࠫࠠࡖࡊ࠴ࡖ (MCAP1 = "1") n 2 3
ࠞ࠙ࡦ࠻ࠬ࠲࠻ ࠞ࠙ࡦ࠻ࠬ࠲࠻
࠻ࠟ (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