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

パルス幅測定モード

ドキュメント内 TOSHIBA CORPORATION 2009 All Rights Reserved (ページ 177-180)

第 9 章 スペシャルファンクションレジスタ

13.4 タイマ機能

13.4.5 パルス幅測定モード

パルス幅測定モードは、TCA0端子入力の立ち上がり/立ち下がりエッジを開始トリガにしてカウ ントをスタートし、入力パルス幅を内部クロックで測定するモードです。

13.4.5.1

設定

動作モード選択

TA0MOD<TA0M>

"110"

を設定するとパルス幅測定モードになります。ソース クロックの選択は

TA0MOD<TA0CK>で行います。

トリガとなるエッジは、トリガエッジ入力の選択

TA0MOD<TA0TED>で選択します。

TA0MOD<TA0TED>

"0"

にすると立ち上がりエッジ、

"1"

にすると立下りエッジをトリガとして キャプチャを開始します。

キャプチャ実行後の動作は、パルス幅測定モード制御

TA0MOD<TA0MCAP>

により決定されま す。TA0MOD<TA0MCAP>を"0"にすると両エッジキャプチャ、"1"にすると片エッジキャプチャ 動作になります。

また、オーバーフロー割り込み制御

TA0CR<TA0OVE>で、アップカウンタのオーバーフローが

発生した場合の動作を選択できます。

TA0OVE

"1"

にすると、オーバーフロー発生時に

INTTCA0

割り込み要求が発生し、

"0"

にするとオーバーフロー発生時に

INTTCA0

割り込み要求は発生しま せん。

なお、本モードでは、

TA0

入力端子を使用しますので、あらかじめポートの設定で

TCA0

端子 を入力にセットしておく必要があります。

TA0CR<TA0S>に" 1"を設定すると動作を開始します。このとき TA0DRA、TA0DRB

レジスタ は"0x0000"に初期化されます。タイマがスタートすると

TA0MOD

および

TA0CR<TA0OVE>は書

込みが無効となりますので、タイマをスタートさせる前に必ず各モードの設定を行うようにして ください。

13.4.5.2

動作

タイマスタート後、指定したトリガエッジ

(

スタートエッジ

)

TCA0

端子に入力されると

INTTCA0

割り込み要求が発生し、指定されたソースクロックでアップカウンタのインクリメント

が行われます。次に指定したエッジと逆方向のエッジを検出すると、アップカウンタの値を

TA0DRB

に取り込み

INTTCA0

割り込み要求が発生し、

TA0SR<TA0CPFB>

"1"

にセットされま す。このとき

TA0MOD <TA0MCAP>

の設定によって次の動作が異なります。

・ 両エッジキャプチャ

(TA0MOD<TA0MCAP>

"0"

のとき

)

逆方向のエッジを検出後もカウントアップは停止しません。次に指定したトリガエッ ジが入力されると、アップカウンタの値を

TA0DRA

に取り込み、

INTTCA0

割り込み要 求が発生し、TA0SR<TA0CPFA>が

1

にセットされます。このときアップカウンタ は"0x0000"にクリアされます。

・ 片エッジキャプチャ

(TA0MOD<TA0MCAP>

"1"

のとき

)

逆方向のエッジを検出後カウントアップは停止し、アップカウンタは"0x0000"にクリ アされます。次にスタートエッジが入力されると

INTTCA0

割り込み要求が発生し、ア ップカウンタは再度インクリメントを開始します。

キャプチャ動作中にアップカウンタがオーバーフローした場合、オーバーフローフラグ

TA0SR<TA0OVF>

"1"

にセットされます。このときオーバーフロー割り込み制御

TA0CR

<TA0OVE>

"1"

にセットされている場合、

INTTCA0

割り込み要求が発生します。

キャプチャ完了フラグ

(TA0SR<TA0CPFA, TA0CPFB>

、オーバーフローフラグ

(TA0SR

<TA0OVF>)は TA0SR

を読み出すことによって自動的に"0"にクリアされます。

Page 163

キャプチャ値は、次のトリガエッジが検出されるまでに

TA0DRB (両エッジの場合は TA0DRA

も含む)から必ず読み出してください。読み出しを行わない場合、キャプチャ値は不定となりま す。また、

TA0DRA

TA0DRB

は、

16

ビットアクセス命令による読み出しを行ってください。

タイマ動作中に

TA0CR<TA0S>

"0"

に設定すると、カウントアップは停止され、アップカウン タは"0x0000"にクリアされます。

1)

タイマスタート後、指定したトリガエッジと逆方向のエッジを先に検出した場合、キャプチャは行われ ず、INTTCA0割り込み要求も発生しません。この場合、指定したトリガエッジを次に検出した時点から キャプチャを開始します。

ソースクロック

カウンタ

カウンタクリア カウンタクリア

カウンタクリアカウンタクリア タイマスタート

カウントスタート

カウントスタート タイマスタート後、先に立ち下がりエッジ

を検出した場合は割り込みは発生しない

1

TA0DRBH, L 0

INTTCA0割り込み要求

0 2 3 4 mn-1 3

mn

1 0

mn

2 0

TA0CR<TA0S>

タイマストップ

TA0MOD<TA0TED>

TCA0端子入力

片エッジキャプチャ(TA0MOD<TA0MCAP>=”1”)

タイマスタート後、先に立ち下がりエッジ を検出した場合は割り込みは発生しない ソースクロック

カウンタ

タイマスタート

1

TA0DRBH, L 0

INTTCA0割り込み要求

0 2 3 4 mn-1 mn mn+1 st-1

st

mn

0

0 1 2

TA0DRAH, L 0

TA0SR<TA0CPFB>

TA0SR<TA0CPFA> TA0SRのリード

TA0DRBのリード

TA0DRAのリード st

TA0CR<TA0S>

TA0SR<TA0CPFB>

TA0SRのリード TA0SRのリード

TA0SRのリード TA0SRのリード

タイマストップ

TA0MOD<TA0TED>

TCA0端子入力

両エッジキャプチャ(TA0MOD<TA0MCAP>=”0”)

TA0DRBのリード

TA0SRのリード

図 13-7 パルス幅測定モードタイミングチャート

TMP89CM46

13.4

タイマ機能

13.4.5.3

キャプチャ処理例

13-8

INTTCA0

割り込みサブルーチンを使ったキャプチャ処理例を示します。キャプチャ

エッジやオーバフローは、ステータスレジスタ

(TA0SR)

を使用すると容易に判定することができ ます。

RETI TA0SR

<TA0OVF>

TA0SR

<TA0CPFB>

TA0SR⺒ߺ಴ߒ

ࠛ࡜࡯ಣℂ

TA0DRB⺒ߺ಴ߒ

ࠠࡖࡊ࠴ࡖ୯ߩಣℂ

1

ࠝ࡯ࡃࡈࡠ࡯⊒↢

 ࠛ࠶ࠫࠠࡖࡊ࠴ࡖഀࠅㄟߺಣℂ଀

0 (ࠝ࡯ࡃࡈࡠ࡯ᧂ)

1 (ࠠࡖࡊ࠴ࡖቢੌ) 0

ࠠࡖࡊ࠴ࡖᧂ

INTTCA0ഀࠅㄟߺ ࠨࡉ࡞࡯࠴ࡦ INTTCA0ഀࠅㄟߺ

ࠨࡉ࡞࡯࠴ࡦ

RETI TA0SR

<TA0OVF>

TA0SR

<TA0CPFB>

TA0SR⺒ߺ಴ߒ

ࠛ࡜࡯ಣℂ

TA0DRB⺒ߺ಴ߒ

1

ࠝ࡯ࡃࡈࡠ࡯⊒↢

ਔࠛ࠶ࠫࠠࡖࡊ࠴ࡖഀࠅㄟߺಣℂ଀

0 (ࠝ࡯ࡃࡈࡠ࡯ᧂ)

1 (ࠠࡖࡊ࠴ࡖቢੌ) 0

ࠠࡖࡊ࠴ࡖᧂ

TA0SR

<TA0CPFA>

TA0DRA⺒ߺ಴ߒ

1 (ࠠࡖࡊ࠴ࡖቢੌ) 0

ࠠࡖࡊ࠴ࡖᧂ

ࠠࡖࡊ࠴ࡖ୯ߩಣℂ

図 13-8 キャプチャ処理例

Page 165

ドキュメント内 TOSHIBA CORPORATION 2009 All Rights Reserved (ページ 177-180)