T_CFGRx

T_CFGRx ( Timer Configuration Register )はタイマーの動作モードを設定します。

タイマーが3系統あるため、T_CFGR0、T_CFGR1、T_CFGR2の三本が用意されています。

レジスタの構造

このレジスタは図1のような構造をもっています。初期値は0です。

図1 レジスタの構造

各ビットの意味は以下のとおりです。

TMODE : Timer Mode

タイマーの動作モードを指定します。

  • 00 : リセット状態(未使用)
  • 01 : パルス幅変調モード(PWM)
  • 10 : パルス幅測定(復調)モード(Pulse Capture)
  • 11 : 外部クロックモード
PULUSE_HI : Pulse Polarity Hi Enable

パルス幅変調モードにおいて、TMRxピンの出力の極性を指定します。

  • 0 : 負極性。指定パルス幅のLがパルス周期の開始とともに出力されます。
  • 1 : 正極性。指定パルス幅のHがパルス周期の開始とともに出力されます。

パルス幅計測モードにおいて、TMRxピンの入力の極性を指定します。

  • 0 : 負極性。パルスの立下りエッジから測定を開始します。
  • 1 : 正極性。パルスの立ち上がりエッジから測定を開始します。
PERIOD_CNT : Period Count

パルス幅変調モードにおいて、連続パルス出力を指定します。

  • 0 : ワンショットパルス出力。
  • 1 : 連続パルス出力。

パルス幅計測モードにおいて、割り込み位置を指定します。

  • 0 : パルス幅の測定終了時に割り込み発生。
  • 1 : パルス周期の測定終了時に割り込み発生。
IRQ_ENA : Interrupt Enable

割り込みを有効にします。

  • 0 : 無効。
  • 1 : 有効。パルス幅変調モードでは周期の終わりがくるたびに割り込みが発生します。パルス幅測定モードでは周期の始まりがくるたびに割り込みが発生します。
TIN_SEL : Timer Input Select

パルス幅測定モードでのパルスの入力ピンを指定します。

  • 0 :TMRxピン。
  • 1 : RxDピン。自動ボーレート測定に使います。

パルス幅測定モードでは測定周期の始まりとともに割り込みが発生します。そのため、最初の一回の割り込みは正しい周期を反映していません。

API

C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hで行われています。T_CFGRxにアクセスする前には必ずIOPGにTimer_Pageを設定してください。

TIMER0の場合は以下のとおりです。

// #include <sysreg.h>
// #include <def2191.h>

sysreg_write(sysreg_IOPG, Timer_Page)   // TIMERページに設定

io_space_write(T_CFGR0, 値)         // T_CFGR0に値を設定
変数 = io_space_read(T_CFGR0)       // T_CFGR0の値を取得

TIMER1の場合は以下のとおりです。

// #include <sysreg.h>
// #include <def2191.h>

sysreg_write(sysreg_IOPG, Timer_Page)   // TIMERページに設定

io_space_write(T_CFGR1, 値)         // T_CFGR1に値を設定
変数 = io_space_read(T_CFGR1)       // T_CFGR1の値を取得

TIMER2の場合は以下のとおりです。

// #include <sysreg.h>
// #include <def2191.h>

sysreg_write(sysreg_IOPG, Timer_Page)   // TIMERページに設定

io_space_write(T_CFGR2, 値)         // T_CFGR2に値を設定
変数 = io_space_read(T_CFGR2)       // T_CFGR2の値を取得

アナログデバイセズが配布しているmcmの中のビット定義ファイルdef2191bit.hから関連するビット定義部分をここに引用します。

                // Definition for TCFGR
#define TIN_SEL         BIT_5
#define IRQ_ENA         BIT_4
#define PERIOD_CNT      BIT_3
#define PULSE_HI        BIT_2
#define TMODE_OFST      0
#define TMODE_MASK      ( 0x3 << TIMOD_OFST )
#define TMODE_PWMOUT    ( 1 << TIMOD_OFST )
#define TMODE_WIDTHCAP  ( 2 << TIMOD_OFST )
#define TMODE_EXTCLK    ( 3 << TIMOD_OFST )

参照情報

項目 マニュアルのページ等
説明 HR B-84
解説 HR 12-2
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |