タイマ用ライブラリ


【概要】

 タイマ用のライブラリ関数は下記に対応しています。

(1) タイマ1〜5の5個の16ビットタイマ
(2) タイマ2/3とタイマ4/5の32ビットタイマ
(3) タイマ1は専用クロック発振回路を使ってスリープ中も動作可能
(4) タイマ5はADコンバータのイベントトリガ用にも使用可能

【関数詳細】

タイマ用に用意されているライブラリ関数は下表となります。

関数名 機 能 と 書 式
CloseTimerX
 (X = 1 … 5 )
タイマモジュールを停止させる 割り込みフラグはクリアされる
【書式】  void CloseTimerX(void);
ConfigIntTimerX
(X = 1 … 5 )
16ビットタイマの割り込みを設定する
【書式】  void ConfigIntTimerX(unsigned int config);

configは下記2項の組み合わせとする
 @割り込み有効、無効(x=1〜5)
   Tx_INT_ON  Tx_INT_OFF
 A割り込み優先レベル
   Tx_INT_PRIOR_0  Tx_INT_PRIOR_1  Tx_INT_PRIOR_2
   Tx_INT_PRIOR_3  Tx_INT_PRIOR_4  Tx_INT_PRIOR_5
   Tx_INT_PRIOR_6  Tx_INT_PRIOR_7

【例】 ConfigIntTimer1(T1_INT_ON & T1_INT_PRIOR_4);
OpenTimerX
 (X = 1 … 5 )
タイマを16ビットとして構成し動作モードを設定する
【書式】
 void OpenTimer1(unsigned int config, unsigned int period);

Configは下記の組み合わせとする
 @モジュールのオンオフ   Tx_ON       Tx_OFF
 Aアイドル時の動作モード  Tx_IDLE_CON  Tx_IDLE_STOP
 Bゲート積算モード     Tx_GATE_ON   Tx_GATE_OFF
 Cプリスケーラ選択
  Tx_PS_1_1  TxPS_1_8  Tx_PS_1_64  Tx_PS_1_256
 Dクロック源  Tx_SOURCE_EXT   Tx_SOURCE_INT
 《タイマ1のみ》
 E同期モード  Tx_SYNC_EXT_ON  Tx_SYNC_EXT_OFF
 《タイマ2、4のみ》
 F32ビットモード Tx_32BIT_MODE_ON  Tx_32BIT_MODE_OFF

periodはPRレジスタに設定する16ビットの値

【例】 OpenTimer1((T1_ON & T1_IDLE_STOP & T1_GATE_OFF &
          T1_PS_1_64 & T1_SYNC_EXT_ON & T1_SOURCE_INT), 3000);
ReadTimerX
(X = 1 … 5 )
16ビットのタイマレジスタの読み出し
【書式】  unsigned int ReadTimerx(void);
WriteTimerX
(X = 1 … 5 )
16ビットタイマレジスタの設定
【書式】  void WriteTimer1(unsigned int timer);

 timerはTMRレジスタにセットする16ビット値
CloseTimer23
CloseTimer45
32ビットタイマをオフにし、タイマ3/5の割り込みを禁止する
【書式】  void CloseTimer23 (void);
ConfigIntTimer23
ConfigIntTimer45
32ビットタイマの割り込みを設定する
【書式】  void ConfigIntTimer23(unsigned int config);
          void ConfigIntTimer45(unsigned int config);

configは下記2項の組み合わせとする
 @割り込み有効、無効(x=1〜5)
   Tx_INT_ON  Tx_INT_OFF
 A割り込み優先レベル
   Tx_INT_PRIOR_0  Tx_INT_PRIOR_1  Tx_INT_PRIOR_2
   Tx_INT_PRIOR_3  Tx_INT_PRIOR_4  Tx_INT_PRIOR_5
   Tx_INT_PRIOR_6  Tx_INT_PRIOR_7

【例】 ConfigIntTimer23(T23_INT_ON & T23_INT_PRIOR_4);
OpenTimer23
OpenTimer45
32ビットタイマとして構成し動作モードを設定する
【書式】
 void OpenTimer23(unsigned int config,  unsigned long period);
 void OpenTimer45(unsigned int config,  unsigned long period);

Config
は下記の組み合わせとする
 @モジュールのオンオフ   Tx_ON       Tx_OFF
 Aアイドル時の動作モード  Tx_IDLE_CON  Tx_IDLE_STOP
 Bゲート積算モード     Tx_GATE_ON   Tx_GATE_OFF
 Cプリスケーラ選択
  Tx_PS_1_1  TxPS_1_8  Tx_PS_1_64  Tx_PS_1_256
 Dクロック源  Tx_SOURCE_EXT   Tx_SOURCE_INT
 E同期モード  Tx_SYNC_EXT_ON  Tx_SYNC_EXT_OFF

periodはPRレジスタに設定する
32ビットの値

【例】 OpenTimer23((T23_ON & T23_IDLE_STOP & T23_GATE_OFF &
          T23_PS_1_64 & T23_SYNC_EXT_ON & T23_SOURCE_INT), 300000);
ReadTimer23
ReadTimer45
32ビットのタイマレジスタの読み出し
【書式】  unsigned int ReadTimer23(void);
WriteTimer23
WriteTimer45
32ビットタイマレジスタの設定
【書式】  void WriteTimer1(unsigned int timer);

 timerはTMRレジスタにセットする32ビット値


マクロとして用意されているものは下表となります

マクロ名 機 能 と 書 式
EnableTX
DisableIntTX
(X = 1 to 5)
タイマXの割り込みを許可、禁止する
SetPriorityIntTX
(X = 1 to 5)
タイマXの割り込み優先レベルを設定する
【書式】 SetPriorityTx(priority);  x=1〜5

priorityは1〜7のいずれか


【基本的な使い方】

(1) タイマ用ライブラリを使うときには下記ヘッダファイルをインクルードする

   #include  <timer.h>

(2) プロジェクトへのライブラリの登録
  下図のようにPIC24F用のライブラリを登録します。




【使用例1】

実際の使用例は下記のようになります。
この例ではタイマ1とタイマ2の2個のタイマでLEDを点滅させていますが、
スイッチを押している間CPUの割り込みレベルを変更するので、優先レベルの低い
タイマ2の割り込みが禁止となりそちら側のLEDだけ点滅が停止します。









   目次ページへ