• 検索結果がありません。

パルス幅測定モード

ドキュメント内 TMP86FH47BUG (ページ 96-99)

第 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 = 0TC1を外部トリガスタート。

:

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

図 8-6 パルス幅測定モード

TMP86FH47BUG

8

16

ビットタイマカウンタ

1 (TC1)

8.3

機能

Page 80

ドキュメント内 TMP86FH47BUG (ページ 96-99)