セクション 11. タイマ ハイライト - microchip...

28
© 2012 Microchip Technology Inc. DS70362B_JP - p. 11-1 タイマ 11 セクション 11. タイマ ハイライト 本セクションには下記の主要項目を記載しています。 11.1 はじめに....................................................................................................................... 11-2 11.2 タイマのタイプ............................................................................................................ 11-3 11.3 制御レジスタ ............................................................................................................... 11-6 11.4 動作モード ................................................................................................................. 11-10 11.5 タイマ割り込み.......................................................................................................... 11-15 11.6 32 ビットタイマの設定.............................................................................................. 11-16 11.7 32 ビット タイマの動作モード.................................................................................. 11-18 11.8 省電力モード時のタイマ動作 .................................................................................... 11-20 11.9 タイマモジュールを使う周辺モジュール .................................................................. 11-21 11.10 レジスタマップ.......................................................................................................... 11-22 11.11 関連アプリケーション ノート ................................................................................... 11-24 11.12 改訂履歴..................................................................................................................... 11-25 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

Upload: others

Post on 08-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • タイマ

    11

    注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。

    セクション 11. タイマ

    ハイライト

    本セクションには下記の主要項目を記載しています。

    11.1 はじめに....................................................................................................................... 11-211.2 タイマのタイプ............................................................................................................ 11-311.3 制御レジスタ ............................................................................................................... 11-611.4 動作モード ................................................................................................................. 11-1011.5 タイマ割り込み.......................................................................................................... 11-1511.6 32 ビットタイマの設定.............................................................................................. 11-1611.7 32 ビット タイマの動作モード .................................................................................. 11-1811.8 省電力モード時のタイマ動作 .................................................................................... 11-2011.9 タイマモジュールを使う周辺モジュール .................................................................. 11-2111.10 レジスタマップ.......................................................................................................... 11-2211.11 関連アプリケーション ノート ................................................................................... 11-2411.12 改訂履歴..................................................................................................................... 11-25

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-1

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.1 はじめにdsPIC33E/PIC24E ファミリのデバイスは各種の 16 ビット タイマモジュールを提供します。一部の例外を除き、全ての 16 ビットタイマは同一の機能回路を備え、その機能に応じて下記の 3 タイプに分類されます。

    • タイプ A タイマ (Timer1)• タイプ B タイマ (Timer2、Timer4、Timer6、Timer8)• タイプ C タイマ (Timer3、Timer5、Timer7、Timer9)タイプ B タイマとタイプ C タイマを結合する事により、32 ビットタイマを形成できます。 個々のタイマモジュールは、下記の読み書き可能レジスタを備えた 16 ビットのタイマ / カウンタです。

    • TMRx: 16 ビットのタイマカウント レジスタ• PRx: 16 ビットのタイマ周期レジスタ• TxCON: 16 ビットのタイマ制御レジスタ各タイマモジュールは、割り込み制御用に下記の 3 ビットを備えます。 • 割り込みイネーブルビット (TxIE)• 割り込みフラグ ステータスビット (TxIF)• 割り込み優先度制御ビット (TxIP)

    Note: ファミリ リファレンス マニュアルの本セクションは、デバイス データシートの補足を目的としています。本書の内容は dsPIC33E/PIC24E ファミリの一部のデバイスには対応していません。

    本書の内容がお客様のご使用になるデバイスに対応しているかどうかは、最新デバイス データシート内の「タイマ」の冒頭に記載している注意書きでご確認ください。

    デバイス データシートとファミリ リファレンス マニュアルの各セクションは、マイクロチップ社のウェブサイト(http://www.microchip.com)でご覧になれます。

    Note 1: dsPIC33E/PIC24E は、1 つまたは複数のタイマモジュールを備えます。詳細は各デバイスのデータシートを参照してください。

    2: ピン、制御 / ステータスビット、レジスタの名前に含まれる添え字「x」は、タイマの番号を表します (x = 1 ~ 9)。

    3: ピン、制御 / ステータスビット、レジスタの名前に含まれる添え字「y」は、 タイプ C タイマの番号 (y = 3、5、7、9) を表します。

    DS70362B_JP - p. 11-2 © 2012 Microchip Technology Inc.

    http://www.microchip.comhttp://www.microchip.com

  • セクション 11. タイマタイマ

    11

    11.2 タイマのタイプ以下では、dsPIC33E/PIC24E ファミリのデバイスが備えるタイマのタイプについて説明します。

    11.2.1 タイプ A タイマTimer1 はタイプ A タイマです。タイプ A タイマは、このタイプに特有の下記の機能を備えます。他タイプのタイマはこれらの機能を備えません。

    • デバイスに接続した低消費電力型 32 kHz オシレータを使って動作可能• 外部クロック源を使って非同期カウンタモードで動作可能• 必要に応じ、プリスケーラで分周した外部クロック入力 (TxCK) を内部デバイスクロックに

    同期させる事が可能 (プリスケーラで分周後にクロックに同期する利点については11.4.3「同期カウンタモード」参照 )

    上記の機能を備えたタイプ A タイマは、リアルタイム クロック (RTC) アプリケーション向けに使えます。図 11-1 にタイプ A タイマのブロック図を示します。

    図 11-1: タイプ A タイマのブロック図

    TGATE

    TCS

    00

    10

    x1

    TMRx

    Comparator

    TGATE

    Set TxIF flag

    0

    1

    TSYNC

    0

    1

    Sync

    SOSCI

    SOSCO/T1CK

    Prescaler(/n)

    TCKPS

    GateSync

    FCY(1)

    Falling Edge Detect

    Prescaler(/n)

    TCKPS

    LPOSCEN(2)

    Note 1: FCY は命令サイクルクロックです。2: セカンダリ オシレータの詳細はセクション 7.「オシレータ」(DS70580) 参照してください。

    Timer Sync

    T1CK

    Latch

    Out

    TON

    Data

    Equal

    CLK

    Reset

    PRx

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-3

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.2.2 タイプ B タイマTimer2、Timer4、Timer6、Timer8 はタイプ B タイマです ( デバイスによってタイプ B タイマの実装数は異なります )。タイプ B タイマは下記の専用機能を備えます。

    • タイプ C タイマと連結する事により 32 ビットタイマを形成可能• プリスケーラで分周した外部クロック入力 (TxCK)を内部デバイスクロックに常時同期 (プリ

    スケーラで分周後にクロックに同期する利点については 11.4.3「同期カウンタモード」参照 )図 11-2 にタイプ B タイマのブロック図を示します。

    図 11-2: タイプ B タイマのブロック図

    Prescaler(/n)

    TGATE

    TCS

    00

    10

    x1

    TGATE

    Set TxIF flag

    0

    1

    Sync

    TCKPS

    TxCK

    GateSync

    FCY(1)

    Falling Edge Detect

    Prescaler(/n)

    TCKPS

    Note 1: FCY は命令サイクルクロックです。

    TMRx

    Comparator

    Timer Sync

    Latch

    OutTON

    Data

    Equal

    CLK

    Reset

    PRx

    DS70362B_JP - p. 11-4 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    11.2.3 タイプ C タイマTimer3、Timer5、Timer7、Timer9 はタイプ C タイマです ( デバイスによってタイプ C タイマの実装数は異なります )。タイプ C タイマは下記の専用機能を備えます。

    • タイプ B タイマと結合する事により 32 ビットタイマを形成可能• 少なくとも 1 つのタイプ C タイマはアナログ - デジタル (A/D) 変換をトリガ可能 • 外部クロック入力 (TxCK) を内部デバイスクロックに常時同期し、同期後のクロックをプリスケーラで分周

    図 11-3 にタイプ C タイマのブロック図を示します。

    図 11-3: タイプ C タイマのブロック図

    Prescaler

    GateSync

    TGATE

    TCS

    00

    10

    x1

    FCY(1)

    TGATE

    Falling Edge Detect Set TxIF flag

    0

    1

    Sync

    TCKPS

    TxCK

    ADC SOC Trigger(2)

    Prescaler(/n)

    TCKPS

    Note 1: FCY は命令サイクルクロックです。2: ADC トリガは TMR3 と TMR5 でのみ利用可能です。

    TMRx

    Comparator

    Timer Sync

    Latch

    OutTON

    Data

    Equal

    CLK

    Reset

    PRx

    (/n)

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-5

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.3 制御レジスタ下記のタイマ制御レジスタの機能の概要をこの後に記載しています。

    • TxCON: タイプ A タイマ制御レジスタ (x = 1)このレジスタはタイプ A タイマの設定を制御します。

    • TxCON: タイプ B タイマ制御レジスタ (x = 2, 4, 6, 8)このレジスタはタイプ B タイマの設定を制御します。

    • TxCON: タイプ C タイマ制御レジスタ (x = 3, 5, 7, 9)このレジスタはタイプ C タイマの設定を制御します。

    各タイマは、上記レジスタに加えて下記の 16 ビットレジスタを備えます。• PRx: タイマ周期レジスタ (x = 1 ~ 9)これは 16 ビットのタイマ周期レジスタです。

    • TMRx: タイマカウント レジスタ (x = 1 ~ 9)これは 16 ビットのタイマカウント レジスタです。

    • TMRxHLD: これはタイマホールド レジスタです (x = 3、5、7、9)。このレジスタは、32 ビットタイマ モードの読み / 書き動作で使います。

    DS70362B_JP - p. 11-6 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    レジスタ 11-1: TxCON: タイプ A タイマ制御レジスタ (x = 1)R/W-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0TON — TSIDL — — — — —

    bit 15 bit 8

    U-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 U-0— TGATE TCKPS — TSYNC TCS —

    bit 7 bit 0

    凡例 :

    R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

    -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

    bit 15 TON: Timer1 ON ビット1 = タイマを起動する0 = タイマを停止する

    bit 14 未実装 :「0」として読み出しbit 13 TSIDL: アイドルモード時停止ビット

    1 = デバイスがアイドルモードに移行した時にタイマ動作を停止する0 = アイドルモード時もタイマ動作を継続する

    bit 12-7 未実装 :「0」として読み出しbit 6 TGATE: Timer1 ゲート時間積算イネーブルビット

    TCS = 1の時 :このビットを無視する

    TCS = 0の時 :1 = ゲート時間の積算を有効にする0 = ゲート時間の積算を無効にする

    bit 5-4 TCKPS: Timer1 入力クロック プリスケール選択ビット11 = プリスケール値 = 1:25610 = プリスケール値 = 1:6401 = プリスケール値 = 1:800 = プリスケール値 = 1:1

    bit 3 未実装 :「0」として読み出しbit 2 TSYNC: Timer1 外部クロック入力同期選択ビット

    TCS = 1の時 : 1 = 外部クロック入力を内部クロックに同期させる0 = 外部クロック入力を内部クロックに同期させないTCS = 0の時 : このビットを無視する。「0」として読み出し。TCS = 0の場合、タイマは内部クロックを使用する

    bit 1 TCS: Timer1 クロック源選択ビット1 = T1CKピンからの外部クロック(立ち上がりエッジ)を選択する(SOSCに対するクロック要求とし

    ても使用 )0 = 内部クロック (FOSC/2) を選択する

    bit 0 未実装 :「0」として読み出し

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-7

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    レジスタ 11-2: TxCON: タイプ B タイマ制御レジスタ (x = 2, 4, 6, 8)

    R/W-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0TON — TSIDL — — — — —

    bit 15 bit 8

    U-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 U-0— TGATE TCKPS T32 — TCS —

    bit 7 bit 0

    凡例 :

    R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

    -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

    bit 15 TON: Timerx ON ビットT32 = 1 (32 ビット タイマモード ) の場合 :1 = 32 ビット TMRy(1):TMRx タイマペアを起動する0 = 32 ビット TMRy(1):TMRx タイマペアを停止するT32 = 0 (16 ビット タイマモード ) の場合 :1 = 16 ビットタイマを起動する0 = 16 ビットタイマを停止する

    bit 14 未実装 :「0」として読み出しbit 13 TSIDL: アイドルモード時停止ビット

    1 = デバイスがアイドルモードに移行した時にタイマ動作を停止する0 = アイドルモード時もタイマ動作を継続する

    bit 12-7 未実装 :「0」として読み出しbit 6 TGATE: Timerx ゲート時間積算イネーブルビット

    TCS = 1の時 :このビットを無視する

    TCS = 0の時 :1 = ゲート時間の積算を有効にする0 = ゲート時間の積算を無効にする

    bit 5-4 TCKPS: Timerx 入力クロック プリスケール選択ビット11 = プリスケール値 = 1:25610 = プリスケール値 = 1:6401 = プリスケール値 = 1:800 = プリスケール値 = 1:1

    bit 3 T32: 32 ビット Timerx モード選択ビット1 = TMRx と TMRy(1) を連結して 1 つの 32 ビットタイマを構成する0 = TMRx と TMRy(1) を別々の 16 ビットタイマとして使う

    bit 2 未実装 :「0」として読み出しbit 1 TCS: Timerx クロック源選択ビット

    1 = TxCK ピンからの外部クロック ( 立ち上がりエッジ ) を選択する0 = 内部クロック (FOSC/2) を選択する

    bit 0 未実装 :「0」として読み出し

    Note 1: TMRy はタイプ C タイマです (y = 3、5、7、9)

    DS70362B_JP - p. 11-8 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    レジスタ 11-3: TxCON: タイプ C タイマ制御レジスタ (x = 3, 5, 7, 9)

    R/W-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0TON(2) — TSIDL(1) — — — — —

    bit 15 bit 8

    U-0 R/W-0 R/W-0 R/W-0 U-0 U-0 R/W-0 U-0— TGATE(2) TCKPS(2) — — TCS(2) —

    bit 7 bit 0

    凡例 :

    R = 読み出し可能ビット W = 書き込み可能ビット U = 未実装ビット、「0」として読み出し

    -n = POR 時の値 1 = ビットはセット 0 = ビットはクリア x = ビットは未知

    bit 15 TON: Timerx ON ビット (2)

    1 = 16 ビット Timerx を起動する0 = 16 ビット Timerx を停止する

    bit 14 未実装 :「0」として読み出しbit 13 TSIDL: アイドルモード時停止ビット (1)

    1 = デバイスがアイドルモードに移行した時にタイマ動作を停止する0 = アイドルモード時もタイマ動作を継続する

    bit 12-7 未実装 :「0」として読み出しbit 6 TGATE: Timerx ゲート時間積算イネーブルビット (2)

    TCS = 1の時 :このビットを無視する

    TCS = 0の時 :1 = ゲート時間の積算を有効にする0 = ゲート時間の積算を無効にする

    bit 5-4 TCKPS: Timerx 入力クロック プリスケール選択ビット (2)

    11 = プリスケール値 = 1:25610 = プリスケール値 = 1:6401 = プリスケール値 = 1:800 = プリスケール値 = 1:1

    bit 3-2 未実装 :「0」として読み出しbit 1 TCS: Timerx クロック源選択ビット (2)

    1 = TxCK ピンからの外部クロック ( 立ち上がりエッジ ) を選択する0 = 内部クロック (FOSC/2) を選択する

    bit 0 未実装 :「0」として読み出し

    Note 1: タイプ B タイマ制御 (TxCON) レジスタで 32 ビットタイマ動作を有効 (T32 = 1) にした場合、アイドルモード時も 32 ビットタイマを動作させるには、タイプ C タイマの TSIDL ビットもクリアする必要があります。

    2: タイプ B タイマ制御 (TxCON) レジスタで 32 ビットタイマ動作を有効 (T32 = 1) にした場合、これらのビットは効果を持ちません。

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-9

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.4 動作モードタイマモジュールは下記のいずれかのモードで動作できます。

    • タイマモード• ゲート付きタイマモード• 同期カウンタモード• 非同期カウンタモード ( タイプ A タイマのみ )タイマモードとゲート付きタイマモードでは、内部命令サイクルクロック(FCY)から入力クロックを供給します。同期カウンタモードと非同期カウンタモードでは、TxCK ピンを使って外部クロック入力から入力クロックを供給します。

    タイマモードは以下のビットによって決まります。

    • TCS (TxCON): タイマクロック源制御ビット• TSYNC (TxCON): タイマ同期制御ビット ( タイプ A タイマのみ )• TGATE (TxCON): タイマゲート制御ビット各動作モード向けのタイマ制御ビットの設定を表 11-1 に示します。

    全ての 16 ビットタイマへの入力クロック (FCY または TxCK) には、プリスケール オプション(1:1、1:8、1:64、1:256) を選択できます。クロック プリスケーラの選択には、タイマ制御レジスタ (TxCON) のタイマクロック プリスケーラ (TCKPS) ビットを使います。プリスケーラ カウンタは下記のいずれかが発生した時にクリアされます。• タイマレジスタ (TMRx) またはタイマ制御 (TxCON) レジスタへの書き込み• タイマ制御レジスタ (TxCON) のタイマ イネーブル (TON) ビットのクリア • 全てのデバイスリセットタイマモジュールの有効化 / 無効化には TON ビット (TxCON) を使います。タイマは、下記を含む dsPIC33E/PIC24E の他のモジュールから使えます。• 入力キャプチャ• 出力コンペア• リアルタイム クロック

    表 11-1: タイマモードの設定

    モードビット設定

    TCS TGATE(2) TSYNC(1)

    タイマモード 0 0 x

    ゲート付きタイマモード 0 1 x

    同期カウンタモード 1 x 1

    非同期カウンタモード (3) 1 x 0

    Note 1: TSYNC ビットはタイプ A タイマにしかありません。タイマモードとゲート付きタイマモードでは、このビットを無視します。

    2: 同期カウンタモードと非同期カウンタモードでは、TGATE ビットを無視します。3: 非同期カウンタモードはタイプ A タイマでのみ使えます。

    DS70362B_JP - p. 11-10 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    11.4.1 タイマモードタイマモードでは、内部クロック (FCY) をプログラマブル プリスケーラで分周した入力クロックをタイマに供給します。タイマを有効にすると、そのタイマは入力クロックの各立ち上がりエッジで 1 ずつインクリメントし、タイマ周期一致時に割り込みを生成します。図 11-4 にタイマモードの動作を示します。

    タイマモードの設定方法

    1. TCS 制御ビット (TxCON) をクリアして内部クロック源を選択する2. TGATE 制御ビット (TxCON) をクリアしてゲート付きタイマモード動作を無効にする内部クロックには常時同期するため、TSYNC ビット (TxCON) をセットしても効果はありません。

    Timer1 を 16 ビット タイマモードに設定するコードシーケンスを例 11-1 に示します。このコードは、タイマ入力クロックの 10 サイクル毎に割り込みを生成します。

    例 11-1: 16 ビット タイマモード向けの初期化コード

    図 11-4: タイマ周期一致時の割り込みタイミング

    T1CONbits.TON = 0; // Disable TimerT1CONbits.TCS = 0; // Select internal instruction cycle clock T1CONbits.TGATE = 0; // Disable Gated Timer modeT1CONbits.TCKPS = 0b011;// Select 1:8 PrescalerTMR1 = 0x00; // Clear timer registerPR1 = 9; // Load the period value

    IPC0bits.T1IP = 0x01; // Set Timer 1 Interrupt Priority LevelIFS0bits.T1IF = 0; // Clear Timer 1 Interrupt FlagIEC0bits.T1IE = 1; // Enable Timer1 interrupt

    T1CONbits.TON = 1; // Start Timer

    /* Example code for Timer1 ISR*/void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void){/* Interrupt Service Routine code goes here */

    IFS0bits.T1IF = 0; //Clear Timer1 interrupt flag}

    TimerClockInput

    TxIF

    TMRx 1 2 3 4 0 1 2 3 4 5 6 7 0 1 2 30

    PRx 9

    Cleared by user software Cleared by user software

    8 95 6 7 8 9

    ~ ~ ~ ~

    1 TCY 1 TCY

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-11

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.4.2 ゲート付きタイマモードタイマモジュールが内部クロックを使って動作する (TCS = 0) 場合、ゲート付きタイマモードを使って外部ゲート信号の持続時間を計測できます。このモードでは、TxCK ピンの外部ゲート信号が HIGH の間だけ、入力クロックの各立ち上がりエッジでタイマが 1 ずつインクリメントします。タイマ割り込みは TxCK ピンの立ち下がりエッジで発生します。図 11-5 にゲート付きタイマモードの動作を示します。 ゲート付きタイマモードの設定方法

    1. TGATE 制御ビット (TxCON) をセットしてゲート付きタイマモードを有効にする2. TCS 制御ビット (TxCON) をクリアして内部クロック源を選択する内部クロックは常時同期するため、TSYNC ビット (TxCON) をセットしても効果はありません。

    例 11-2 に、ゲート付きタイマモードでパルス幅 (T1CK) を計測するコードシーケンスを示します。

    例 11-2: 16 ビット ゲート付きタイマモード向けの初期化コード

    図 11-5: ゲート付きタイマモードの動作

    T1CONbits.TON = 0; // Disable TimerT1CONbits.TCS = 0; // Select internal instruction cycle clock T1CONbits.TGATE = 1; // Enable Gated Timer modeT1CONbits.TCKPS = 0b00; // Select 1:1 PrescalerTMR1 = 0x00; // Clear timer registerPR1 = 9; // Load the period value

    IPC0bits.T1IP = 0x01; // Set Timer 1 Interrupt Priority LevelIFS0bits.T1IF = 0; // Clear Timer 1 Interrupt FlagIEC0bits.T1IE = 1; // Enable Timer1 interrupt

    T1CONbits.TON = 1; // Start Timer

    /* Example code for Timer1 ISR*/void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void){/* Interrupt Service Routine code goes here */

    IFS0bits.T1IF = 0; //Clear Timer1 interrupt flag}

    Timer Clock Input

    (Internal)

    TxIF

    TMRx 1 2 3 8 90

    PRx 9

    Cleared by user software Cleared by user software

    TxCK(Gate Input)

    4 5 6 7 1 20

    DS70362B_JP - p. 11-12 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    11.4.3 同期カウンタモード同期カウンタモードでは、外部クロック入力をプログラマブル プリスケーラで分周した入力クロックをタイマに供給します。このモードでは、外部クロック入力を内部デバイスクロックに同期させます。タイマを有効にすると、そのタイマは入力クロックの各立ち上がりエッジで1 ずつインクリメントし、タイマ周期一致時に割り込みを生成します。 同期カウンタモードの設定方法

    • タイプ A タイマの TSYNC 制御ビット (TxCON) をセットして、クロック同期を有効にする ( タイプ B またはタイプ C タイマの場合、外部クロック入力は常時同期します )

    • TCS 制御ビット (TxCON) をセットして外部クロック源を選択する同期回路はスリープモード中に停止するため、同期した外部クロック源を使うタイマはスリープモード中に動作しません。

    タイプ C タイマの場合、正しく同期させるには、外部クロック入力の HIGH および LOW 時間にそれぞれ少なくとも 0.5 TCY ( に加えて 20 ns の入力バッファ遅延時間 ) が必要です。タイプ A およびタイプ B タイマのクロック同期はプリスケール後に行います。また、プリスケーラ出力は入力の立ち上がりエッジで変化します。従ってタイプ A およびタイプ B タイマの場合、外部クロック入力周期には、少なくとも 0.5 TCY ( に加えて 20 ns の入力バッファ遅延時間 ) をプリスケーラ値で割り算した長さが必要です。ただし、外部クロックの HIGH および LOW 時間は、公称値 10 ns ( または公称値 50 MHz) の最小パルス幅要件を満たす必要があります。

    Timer1モジュールを同期カウンタモードに設定するコードシーケンスを例 11-3に示します。このコードは、TxCKピンの立ち上がりエッジを1000回カウントした後に割り込みを生成します。

    例 11-3: 16 ビット同期カウンタモード向けの初期化コード

    Note 1: 同期カウンタモードにおける外部クロックのタイミング要件は、各デバイス データシート内の「電気的特性」を参照してください。

    2: 外部カウンタモード (TCS = 1) の場合、タイプ A およびタイプ B タイマは 2 番目の立ち上がりエッジからカウントを始めるのに対し、タイプ C タイマは最初の立ち上がりエッジからカウントを始めます。

    3: タイマ周期一致が発生した後、TMRx レジスタはタイマクロック入力の次の立ち上がりエッジでリセットされます。

    4: TxIF ビットは、タイマ周期一致から 1 命令サイクル後にセットされます。

    T1CONbits.TON = 0; // Disable TimerT1CONbits.TCS = 1; // Select external clock sourceT1CONbits.TSYNC = 1; // Enable SynchronizationT1CONbits.TCKPS = 0b00; // Select 1:1 PrescalerTMR1 = 0x00; // Clear timer registerPR1 = 999; // Load the period value

    IPC0bits.T1IP = 0x01; // Set Timer 1 Interrupt Priority LevelIFS0bits.T1IF = 0; // Clear Timer 1 Interrupt FlagIEC0bits.T1IE = 1; // Enable Timer1 interrupt

    T1CONbits.TON = 1; // Start Timer

    /* Example code for Timer1 ISR*/void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void){/* Interrupt Service Routine code goes here */

    IFS0bits.T1IF = 0; //Clear Timer1 interrupt flag}

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-13

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.4.4 非同期カウンタモード ( タイプ A タイマ専用 )タイプ A タイマは非同期カウンタモードで動作できます。非同期カウンタモードでは、外部クロック入力 (TxCK) をプログラマブル プリスケーラで分周した入力クロックをタイマに供給します。このモードでは、外部クロック入力を内部デバイスクロックに同期させません。タイマを有効にすると、そのタイマは入力クロックの各立ち上がりエッジで 1 ずつインクリメントし、タイマ周期一致時に割り込みを生成します。

    非同期カウンタモードの設定方法

    1. TSYNC 制御ビット (TxCON) をクリアしてクロックの同期を無効にする2. TCS 制御ビット (TxCON) をセットして外部クロック源を選択する非同期カウンタモードでは下記が可能です。

    • オシレータ制御 (OSCCON) レジスタのセカンダリ オシレータ イネーブル (LPOSCEN)ビットをセットする事により、リアルタイム クロック (RTC) アプリケーション向けに低消費電力型 32 kHz オシレータからタイマにクロックを供給できます。詳細はセクション 7.「オシレータ」(DS70580) 参照してください。

    • スリープモード時に外部クロック入力が動作しているか、あるいはセカンダリ オシレータが有効になっていれば、タイマはスリープモード中でも動作できます。周期レジスタ一致時に割り込みを生成する事により、プロセッサをスリープモードから復帰できます ( 先にそのタイマ割り込みを有効にしておく必要があります )。

    非同期カウンタモードの場合、外部クロック入力の HIGH および LOW 時間は、最小パルス幅要件 ( 公称値 10 ns または 50 MHz) を満たす必要があります。

    Timer1モジュールを非同期カウンタモードに設定するコードシーケンスを例 11-4に示します。このコードは、32 kHz クロック入力で動作している時に 1 秒間隔で割り込みを生成します。

    例 11-4: 16 ビット非同期カウンタモード向けの初期化コード

    Note 1: 非同期カウンタモードにおける外部クロックのタイミング要件は、各デバイスデータシート内の「電気的特性」を参照してください。

    2: タイマ周期一致が発生した後、TMRx レジスタはタイマクロック入力の次の立ち上がりエッジでリセットされます。

    3: TxIF ビットは、タイマ周期一致から 1 命令サイクル後にセットされます。

    T1CONbits.TON = 0; // Disable TimerT1CONbits.TCS = 1; // Select external clock T1CONbits.TSYNC = 0; // Disable SynchronizationT1CONbits.TCKPS = 0b00; // Select 1:1 PrescalerTMR1 = 0x00; // Clear timer registerPR1 = 32767; // Load the period value

    IPC0bits.T1IP = 0x01; // Set Timer 1 Interrupt Priority LevelIFS0bits.T1IF = 0; // Clear Timer 1 Interrupt FlagIEC0bits.T1IE = 1; // Enable Timer1 interrupt

    T1CONbits.TON = 1; // Start Timer

    /* Example code for Timer1 ISR*/void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void){/* Interrupt Service Routine code goes here */

    IFS0bits.T1IF = 0; //Clear Timer1 interrupt flag}

    DS70362B_JP - p. 11-14 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    11.5 タイマ割り込みタイマ割り込みは下記のタイミングで発生します。

    • タイマモードまたは同期 /非同期カウンタモードの場合、タイマ周期一致が発生した時 (図11-4参照 )

    • ゲート付きタイマモードの場合、TxCK ピンの「ゲート」信号の立ち下がり時 ( 図 11-5 参照 )タイマ割り込みフラグ (TxIF) ビットはソフトウェアでクリアする必要があります。 タイマを割り込み要因として有効にするには、対応するタイマ割り込みイネーブル (TxIE) ビットを使います。割り込み要因として有効にするタイマの割り込み優先度 (TxIP) ビットには、ゼロ以外の値を書き込む必要があります。詳細はセクション 6.「割り込み」を参照してください。

    Note: 周期レジスタ PRx に値 0x0000 を書き込んだ状態でタイマを有効にすると、特殊な状況が発生します。この場合タイマ割り込みは生成されません。

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-15

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.6 32 ビットタイマの設定

    32 ビット タイマモジュールは、16 ビットのタイプ B タイマとタイプ C タイマを結合する事により構成できます。32 ビットタイマを動作させるには、タイプ B タイマ制御レジスタ(TxCON) の T32 制御ビットをセットする必要があります。32 ビット動作では、タイプ Cタイマは上位 16 ビット (msw)、タイプ B タイマは下位 16 ビット (lsw) を格納します。 32 ビット動作の設定には、タイプ B タイマ制御 (TxCON) レジスタビットだけを使います。TSIDLビットを除くタイプCタイマの全ての制御レジスタビットは無視されます。詳細は11.8.2「アイドルモード時のタイマ動作」を参照してください。 32 ビットタイマの割り込み制御には、タイプ C タイマの割り込みイネーブルビット、割り込みフラグビット、割り込み優先度制御ビットを使います。32 ビットタイマ動作では、タイプ Bタイマの割り込み制御ビットとステータスビットは無視されます。

    32ビットタイマを形成するタイプBおよびタイプCタイマの組み合わせを表11-2に示します。

    32 ビット タイマモジュールのブロック図を図 11-6 に示します。32 ビットタイマ モジュールは、以下のいずれかのモードで動作できます。

    • タイマモード• ゲート付きタイマモード• 同期カウンタモードタイマモードとゲート付きタイマモードでは、内部命令サイクルクロック(FCY)から入力クロックを供給します。同期カウンタモードでは、タイプ B タイマの外部クロック入力 (TxCK ピン )から入力クロックを供給します。

    32ビットタイマの動作モードは、タイプBタイマ制御レジスタ内の下記のビットで指定します。• TCS (TxCON): タイマクロック源制御ビット• TGATE (TxCON): タイマゲート制御ビット表 11-3 に、各種動作モードに対応するタイマ制御ビットの設定を示します。

    全ての 32 ビットタイマへの入力クロック (FCY または TxCK) には、プリスケール オプション(1:1、1:8、1:64、1:256) を選択できます。クロック プリスケーラの選択には、タイプ B タイマ制御レジスタ (TxCON)のタイマクロック プリスケーラ (TCKPS)ビットを使います。プリスケーラ カウンタは下記のいずれかが発生した時にクリアされます。• タイプBタイママレジスタ(TMRx)またはタイプBタイマ制御(TxCON)レジスタへの書き込み• タイプ B タイマ制御 (TxCON) レジスタのタイマ イネーブル (TON) ビットのクリア • 全てのデバイスリセット

    表 11-2: 32 ビットタイマを形成する 16 ビットタイマの組み合わせ

    タイプ B タイマ (lsw) タイプ C タイマ (msw)

    Timer2 Timer3Timer4 Timer5Timer6 Timer7Timer8 Timer9

    表 11-3: 32 ビット タイマモードの設定

    モードビット設定

    TCS TGATE

    タイマモード 0 0

    ゲート付きタイマモード 0 1

    同期カウンタモード 1 x

    Note 1: タイプ B およびタイプ C タイマは非同期外部クロックモードをサポートしません。従って 32 ビットタイマでも非同期カウンタモードは使えません。

    2: タイマ周期一致が発生した後、TMRx レジスタはタイマクロック入力の次の立ち上がりエッジでリセットされます。

    3: TxIF ビットは、タイマ周期一致から 1 命令サイクル後にセットされます。

    DS70362B_JP - p. 11-16 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    32 ビット タイマモジュールの有効化 / 無効化には、タイプ B タイマ制御 (TxCON) レジスタ内の TON ビット (TxCON ) を使います。32 ビットの読み書き動作では、32 ビットタイマの上位 16 ビットと下位 16 ビットを同期させるために、追加の制御ロジックとホールドレジスタを使います ( 図 11-6 参照 )。各タイプ C タイマは、タイマ レジスタペアの読み書きに使う TMRyHLD レジスタを備えます。この TMRyHLD レジスタは、対応するタイマを 32 ビット動作向けに設定した場合にのみ使います。 TMR3:TMR2 レジスタペアを使って 32 ビットタイマを形成する場合、ユーザ アプリケーションはまず TMR2 レジスタからタイマ値の下位 16 ビットを読み出す必要があります。下位 16 ビットを読み出すと、自動的に TMR3 の内容が TMR3HLD レジスタへ転送されます。その後に、ユーザ アプリケーションで TMR3HLD を読み出す事により、タイマ値の上位 16 ビットを取得できます。 値を TMR3:TMR2 レジスタペアに書き込む場合、ユーザ アプリケーションはまずタイマ値の上位 16 ビットを TMR3HLD レジスタに書き込む必要があります。次に TMR2 にタイマ値の下位16ビットを書き込むと、TMR3HLDレジスタの内容が自動的にTMR3レジスタに転送されます。 例 11-5 に、32 ビットタイマにアクセスするためのサンプルコードを示します。例 11-5: 32 ビットタイマへのアクセス

    図 11-6: タイプ B/ タイプ C タイマペアのブロック図 (32 ビットタイマ )

    // Reading from 32-bit timerlsw = TMR2; //Read lsw from the Type B timer registermsw = TMR3HLD; //Read msw from the Type C timer holding register

    // Writing to 32-bit timerTMR3HLD = msw; //Write msw to the Type C timer holding registerTMR2 = lsw; //Write lsw to the Type B timer register

    Latch

    Prescaler(/n)

    TGATE

    TCS

    00

    10

    x1

    TMRx

    PRx

    TGATE

    Set TyIF Flag

    0

    1

    Sync

    TCKPS

    Equal

    GateSync

    FCY

    Falling Edge Detect

    Prescaler(/n)

    TCKPSTMRy

    Comparator

    PRy

    Reset

    mswlsw

    TMRyHLD

    Data Bus

    ADC DATA

    CLK

    Note 1: ADC トリガは TMR3:TMR2 および TMR5:TMR4 ペアを使う 32 ビットタイマでのみ利用可能です。2: Timerx はタイプ B タイマ (x = 2、4、6、8) です。3: Timery はタイプ C タイマ (y = 3、5、7、9) です。

    TXCK

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-17

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.7 32 ビット タイマの動作モード

    11.7.1 タイマモード32 ビットタイマのタイマモードでの動作は 16 ビットタイマと同様です。Timer2 と Timer3 を32 ビット タイマモードに設定するコードシーケンスを例 11-6 に示します。

    例 11-6: 32 ビット タイマモード向けの初期化コード

    11.7.2 ゲート付きタイマモード32 ビットタイマのゲート付きタイマモードでの動作は 16 ビットタイマと同様です。Timer2 とTimer3を32ビット ゲート付きタイマモードに設定するコードシーケンスを例11-7に示します。

    例 11-7: 32 ビット ゲート付きタイマモード向けの初期化コード

    T3CONbits.TON = 0; // Stop any 16-bit Timer3 operationT2CONbits.TON = 0; // Stop any 16/32-bit Timer3 operationT2CONbits.T32 = 1; // Enable 32-bit Timer modeT2CONbits.TCS = 0; // Select internal instruction cycle clock T2CONbits.TGATE = 0; // Disable Gated Timer modeT2CONbits.TCKPS = 0b00; // Select 1:1 PrescalerTMR3 = 0x00; // Clear 32-bit Timer (msw)TMR2 = 0x00; // Clear 32-bit Timer (lsw)PR3 = 0x0002; // Load 32-bit period value (msw)PR2 = 0x0000; // Load 32-bit period value (lsw)

    IPC2bits.T3IP = 0x01; // Set Timer3 Interrupt Priority LevelIFS0bits.T3IF = 0; // Clear Timer3 Interrupt FlagIEC0bits.T3IE = 1; // Enable Timer3 interrupt

    T2CONbits.TON = 1; // Start 32-bit Timer

    /* Example code for Timer3 ISR*/void __attribute__((__interrupt__, no_auto_psv)) _T3Interrupt(void){/* Interrupt Service Routine code goes here */

    IFS0bits.T3IF = 0; //Clear Timer3 interrupt flag}

    T3CONbits.TON = 0; // Stop any 16-bit Timer3 operationT2CONbits.TON = 0; // Stop any 16/32-bit Timer3 operationT2CONbits.T32 = 1; // Enable 32-bit Timer modeT2CONbits.TCS = 0; // Select internal instruction cycle clock T2CONbits.TGATE = 1; // Enable Gated Timer modeT2CONbits.TCKPS = 0b00; // Select 1:1 PrescalerTMR3 = 0x00; // Clear 32-bit Timer (msw)TMR2 = 0x00; // Clear 32-bit Timer (lsw)PR3 = 0x0002; // Load 32-bit period value (msw)PR2 = 0x0000; // Load 32-bit period value (lsw)

    IPC2bits.T3IP = 0x01; // Set Timer3 Interrupt Priority LevelIFS0bits.T3IF = 0; // Clear Timer3 Interrupt FlagIEC0bits.T3IE = 1; // Enable Timer3 interrupt

    T2CONbits.TON = 1; // Start 32-bit Timer

    /* Example code for Timer3 ISR*/void __attribute__((__interrupt__, no_auto_psv)) _T3Interrupt(void){/* Interrupt Service Routine code goes here */

    IFS0bits.T3IF = 0; //Clear Timer3 interrupt flag}

    DS70362B_JP - p. 11-18 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    11.7.3 同期カウンタモード32ビットタイマの同期カウンタモードでの動作は16ビットタイマと同様です。Timer2とTimer3を 32 ビット同期カウンタモードに設定するコードシーケンスを例 11-8 に示します。

    例 11-8: 32 ビット同期カウンタモード向けの初期化コード T3CONbits.TON = 0; // Stop any 16-bit Timer3 operationT2CONbits.TON = 0; // Stop any 16/32-bit Timer3 operationT2CONbits.T32 = 1; // Enable 32-bit Timer modeT2CONbits.TCS = 1; // Select External clock T2CONbits.TCKPS = 0b00; // Select 1:1 PrescalerTMR3 = 0x00; // Clear 32-bit Timer (msw)TMR2 = 0x00; // Clear 32-bit Timer (lsw)PR3 = 0x0002; // Load 32-bit period value (msw)PR2 = 0x0000; // Load 32-bit period value (lsw)

    IPC2bits.T3IP = 0x01; // Set Timer3 Interrupt Priority LevelIFS0bits.T3IF = 0; // Clear Timer3 Interrupt FlagIEC0bits.T3IE = 1; // Enable Timer3 interrupt

    T2CONbits.TON = 1; // Start 32-bit Timer

    /* Example code for Timer3 ISR*/void __attribute__((__interrupt__, no_auto_psv)) _T3Interrupt(void){/* Interrupt Service Routine code goes here */

    IFS0bits.T3IF = 0; //Clear Timer3 interrupt flag}

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-19

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.8 省電力モード時のタイマ動作

    11.8.1 スリープモード時のタイマ動作デバイスがスリープモードに移行すると、システムクロックは停止します。タイマモジュールが内部クロック源 (FCY) を使って動作している場合、タイマモジュールも停止します。タイプ A タイマは、他のタイマとは異なり、システムクロック源とは非同期で動作できます。このため、タイプ A タイマはスリープモード中でも動作を継続できます。タイプ A タイマをスリープモード時に動作させるには、下記の設定が必要です。

    • TSYNC 制御ビット (TxCON) をクリアしてクロックの同期を無効にする• TCS 制御ビット (TxCON) をセットして外部クロック源を選択する• 外部クロック入力 (TxCK) を使わない場合、セカンダリ オシレータを有効にする

    上記の条件を全て満たすと、タイマはスリープモード中でもカウントを継続し、タイマ周期一致を検出します。タイマレジスタ値と周期レジスタ値が一致すると TxIF ビットがセットされ、タイマ割り込みが生成されます ( そのタイマの割り込みを有効 (TxIE = 1) にしておく必要があります )。タイマ割り込みによってデバイスはスリープから復帰し、下記のように動作します。

    • その割り込みに割り当てられた優先度が現在の CPU 優先度以下である場合、復帰したデバイスはスリープモードを起動した PWRSAV命令の次の命令からコード実行を再開します。

    • 割り込み優先度が現在の CPU 優先度よりも高い場合、復帰したデバイスは CPU 例外処理を開始します。この場合、タイマ割り込みサービスルーチン (ISR) の先頭命令からコード実行を再開します。

    詳細はセクション 9.「ウォッチドッグ タイマと省電力モード」(DS70615) を参照してください。

    11.8.2 アイドルモード時のタイマ動作デバイスがアイドルモードに移行してもシステムクロック源は動作し続けますが、CPU はコード実行を停止します。アイドルモード中にタイマモジュールを動作させるかどうかは、タイマ制御レジスタのアイドル時タイマ停止 (TSIDL) ビット (TxCON) で設定します。TSIDL = 0の場合、タイマはアイドルモード中でも完全に機能します。32 ビットタイマをアイドルモード時に動作させるには、タイプ B とタイプ C 両方のタイマ制御レジスタの TSIDL ビット (TxCON) をクリアする必要があります。TSIDL = 1の場合、タイマはアイドルモード時に停止し、スリープモード時と同様に機能します (11.8.1「スリープモード時のタイマ動作」参照 )。

    Note: セカンダリ オシレータを有効にするには、オシレータ制御 (OSCCON) レジスタのセカンダリ オシレータ イネーブル (LPOSCEN) ビットをセットします。詳細はセクション 7.「オシレータ」を参照してください。32 kHz オシレータはSOSCO/SOSCI デバイスピンに接続する必要があります。

    DS70362B_JP - p. 11-20 © 2012 Microchip Technology Inc.

  • セクション 11. タイマタイマ

    11

    11.9 タイマモジュールを使う周辺モジュール

    11.9.1 入力キャプチャと出力コンペアのタイムベース入力キャプチャおよび出力コンペア周辺モジュールは、タイムベースとして Timer1 ~ Timer5を選択できます。Timer1 は、同期モードでのみ、これらの周辺モジュール用タイムベースとして使えます。

    Timer1 ~ Timer5 は、入力キャプチャおよび出力コンペア モジュール用の同期およびトリガ源として構成できます。詳細はセクション 12.「入力キャプチャ」(DS70352)、セクション 13.「出力コンペア」(DS70358)、各デバイスのデータシートを参照してください。

    TCK とタイマ同期出力信号は図 11-1 を参照してください。図にはタイムベースおよび同期源の詳細も記載しています。

    11.9.2 A/D 特殊イベントトリガ全てのデバイス バージョンは、16 および 32 ビットモードでタイマ周期一致時に特殊 A/D トリガ信号を生成できるタイプ C タイマを少なくとも 1 つ備えています。このタイマモジュールは、A/D サンプリング ロジックに対して変換開始信号を出力できます。• T32 = 0 の場合、対応し合う 16 ビット タイマレジスタ (TMRx) と 16 ビット周期レジスタ

    (PRx) が一致すると、A/D 特殊イベントトリガ信号が生成されます。• T32 = 1の場合、対応し合う 32 ビット タイマレジスタペア (TMRx:TMRy) と 32 ビット周期レジスタペア (PRx:PRy) が一致すると、A/D 特殊イベントトリガ信号が生成されます。

    このタイマだけが特殊イベントトリガ信号を生成できます。この信号を使う場合、A/D コンバータ制御レジスタ内で、この信号をトリガ源として選択する必要があります。詳細はセクション16.「アナログ - デジタル コンバータ (ADC)」(DS70621) と各デバイスのデータシートを参照してください。

    11.9.3 外部割り込みピンとしてタイマを使う各タイマの外部クロック入力ピンは、追加の割り込みピンとして使えます。この場合、タイマ周期レジスタ PRx にゼロ以外の値を書き込み、TMRx レジスタをこの値より 1 小さい値に初期化します。また、タイマのクロック プリスケーラは 1:1 に設定する必要があります。上記の設定により、外部クロック信号の次の立ち上がりエッジを検出した時に、割り込みが生成されます。

    11.9.4 I/O ピンの制御外部クロック動作またはゲート付き動作向けに設定したタイマモジュールを有効にする場合、ユーザ アプリケーションで I/O ピンのデータ方向を「入力」に設定する必要があります。タイマモジュールを有効にするだけでは、ピンのデータ方向は設定されません。

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-21

  • dsPIC33E/PIC

    24Eフ

    ァミ

    リ リ

    ファ

    レン

    ス マ

    ニュ

    アル

    DS

    70362B_JP

    - p. 11-22©

    2012 Microchip Technology Inc.

    11-5 に示します。

    Bit 3 Bit 2 Bit 1 Bit 0 全リセット

    xxxx

    FFFF

    — TSYNC TCS — 0000

    xxxx

    xxxx

    xxxx

    FFFF

    FFFF

    T32 — TCS — 0000

    — — TCS — 0000

    xxxx

    xxxx

    xxxx

    FFFF

    FFFF

    T32 — TCS — 0000

    — — TCS — 0000

    xxxx

    xxxx

    xxxx

    FFFF

    FFFF

    T32 — TCS — 0000

    — — TCS — 0000

    xxxx

    xxxx

    xxxx

    FFFF

    FFFF

    T32 — TCS — 0000

    — — TCS — 0000

    11.10 レジスタマップdsPIC33E/PIC24E のタイマモジュールに関連する特殊機能レジスタの概要を表 11-4 と表

    表 11-4: タイマ関連のレジスタマップSFR 名 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4

    TMR1 Timer1 レジスタPR1 周期レジスタ 1T1CON TON — TSIDL — — — — — — TGATE TCKPS

    TMR2 Timer2 レジスタTMR3HLD Timer3 ホールドレジスタ (32 ビットタイマ動作専用 )TMR3 Timer3 レジスタPR2 周期レジスタ 2PR3 周期レジスタ 3T2CON TON — TSIDL — — — — — — TGATE TCKPS

    T3CON TON — TSIDL — — — — — — TGATE TCKPS

    TMR4 Timer4 レジスタTMR5HLD Timer5 ホールドレジスタ (32 ビットタイマ動作専用 )TMR5 Timer5 レジスタPR4 周期レジスタ 4PR5 周期レジスタ 5T4CON TON — TSIDL — — — — — — TGATE TCKPS

    T5CON TON — TSIDL — — — — — — TGATE TCKPS

    TMR6 Timer6 レジスタTMR7HLD Timer7 ホールドレジスタ (32 ビットタイマ動作専用 )TMR7 Timer7 レジスタPR6 周期レジスタ 6PR7 周期レジスタ 7T6CON TON — TSIDL — — — — — — TGATE TCKPS

    T7CON TON — TSIDL — — — — — — TGATE TCKPS

    TMR8 Timer8 レジスタTMR9HLD Timer9 ホールドレジスタ (32 ビットタイマ動作専用 )TMR9 Timer9 レジスタPR8 周期レジスタ 8PR9 周期レジスタ 9T8CON TON — TSIDL — — — — — — TGATE TCKPS

    T9CON TON — TSIDL — — — — — — TGATE TCKPS

    凡例 : x = リセット時に未知の値、— = 未実装、「0」として読み出し、リセット値は 16 進数で表記

  • © 2012 M

    icrochip Technology Inc.D

    S70362B

    _JP - p. 11-23

    セク

    ショ

    ン11. タ

    イマ

    タイマ 11

    S it 3 Bit 2 Bit 1 Bit 0 全リセット

    IFS 1IF — — — 0000

    IFS — — — — 0000

    IFS — — — — 0000

    IFS 8IF — — T7IF 0000

    IEC 1IE — — — 0000

    IEC — — — — 0000

    IEC — — — — 0000

    IEC 8IE — — T7IE 0000

    IPC — — — — 4444

    IPC — — — — 4444

    IPC — T3IP 4444

    IPC — — — — 4444

    IPC — T5IP 4444

    IPC — — — — 4444

    IPC — T7IP 4444

    IPC — T9IP 4444

    11-5: 割り込み制御関連のレジスタマップ

    FR 名 Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 B

    0 — — — — — — — T3IF T2IF — — — T

    1 — — — T5IF T4IF — — — — — — —

    2 T6IF — — — — — — — — — — —

    3 — — — — — — — — — — — T9IF T

    0 — — — — — — — T3IE T2IE — — — T

    1 — — — T5IE T4IE — — — — — — —

    2 T6IE — — — — — — — — — — —

    3 — — — — — — — — — — — T9IE T

    0 — T1IP — — — — — — — —

    1 — T2IP — — — — — — — —

    2 — — — — — — — — — — — —

    6 — T4IP — — — — — — — —

    7 — — — — — — — — — — — —

    11 — T6IP — — — — — — — —

    12 — T8IP — — — — — — — —

    13 — — — — — — — — — — — —

    例 : x = リセット時に未知の値、— = 未実装、「0」として読み出し、リセット値は 16 進数で表記

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    11.11 関連アプリケーション ノート本セクションに関連するアプリケーション ノートの一覧を以下に記載します。一部のアプリケーション ノートは dsPIC33E/PIC24E デバイスファミリ向けではありません。ただし概念は共通しており、変更が必要であったり制限事項が存在するものの利用が可能です。タイマモジュールに関連する最新のアプリケーション ノートは下記の通りです。

    タイトル アプリケーション ノート番号非同期クロックモードでの Timer1 の使用 AN580

    Note: dsPIC33E/PIC24E デバイスファミリ関連のアプリケーション ノートとサンプルコードはマイクロチップ社のウェブサイト (www.microchip.com)でご覧になれます。

    DS70362B_JP - p. 11-24 © 2012 Microchip Technology Inc.

    http://www.microchip.comhttp://www.microchip.com

  • セクション 11. タイマタイマ

    11

    11.12 改訂履歴

    リビジョン A (2008 年 1 月 )本書の初版

    リビジョン B (2010 年 7 月 )このリビジョンでの変更内容は以下の通りです。

    • 全ての初期化コードサンプルを更新 : __shadow__を no_auto_psvに変更し、ウォーターマークを削除 ( 例 11-1 ~例 11-4、例 11-6 ~例 11-8 参照 )

    • タイプ A タイマのブロック図 ( 図 11-1) を更新• タイプ B タイマのブロック図 ( 図 11-2) を更新• タイプ C タイマのブロック図 ( 図 11-3) を更新• 11.3「制御レジスタ」にレジスタの記述を追加• 11.4.1「タイマモード」に網掛け注釈ボックスを追加• タイマ周期一致時の割り込みタイミング ( 図 11-4) を更新• 11.4.3「同期カウンタモード」を更新• 11.4.4「非同期カウンタモード ( タイプ A タイマ専用 )」で、例 11-4 の後の最初の網掛け注釈を更新し、新たな網掛け注釈を追加

    • 11.6「32 ビットタイマの設定」の 2 番目の網掛け注釈を更新• タイプ B/ タイプ C タイマペアのブロック図 (32 ビットタイマ )( 図 11-6) を更新• 11.9.1「入力キャプチャと出力コンペアのタイムベース」で、第 2 段落の第 1 文を更新• 表現および体裁の変更等、本書全体の細部を修正

    © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-25

  • dsPIC33E/PIC24E ファミリ リファレンス マニュアル

    NOTE:

    DS70362B_JP - p. 11-26 © 2012 Microchip Technology Inc.

  • © 2012 Microchip Technology Inc. DS70362B_JP - p. 11-27

    本書に記載されているデバイス アプリケーション等に関する情報は、ユーザの便宜のためにのみ提供されているものであ

    り、更新によって無効とされる事があります。お客様のアプ

    リケーションが仕様を満たす事を保証する責任は、お客様に

    あります。マイクロチップ社は、明示的、暗黙的、書面、口

    頭、法定のいずれであるかを問わず、本書に記載されている

    情報に関して、状態、品質、性能、品性、特定目的への適合

    性をはじめとする、いかなる類の表明も保証も行いません。マ

    イクロチップ社は、本書の情報およびその使用に起因する一

    切の責任を否認します。マイクロチップ社の明示的な書面に

    よる承認なしに、生命維持装置あるいは生命安全用途にマイ

    クロチップ社の製品を使用する事は全て購入者のリスクと

    し、また購入者はこれによって発生したあらゆる損害、クレー

    ム、訴訟、費用に関して、マイクロチップ社は擁護され、免

    責され、損害うけない事に同意するものとします。暗黙的あ

    るいは明示的を問わず、マイクロチップ社が知的財産権を保

    有しているライセンスは一切譲渡されません。

    商標

    マイクロチップ社の名称と Microchip ロゴ、dsPIC、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、rfPIC、UNI/O は、米国およびその他の国におけるマイクロチップ・テクノロジー社の登録商標です。

    FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MXDEV、MXLAB、SEEVAL、Embedded Control SolutionsCompany は、米国におけるマイクロチップ・テクノロジー社の登録商標です。

    Analog-for-the-Digital Age,Application Maestro、chipKIT、chipKIT logo、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPLAB Certifiedr ロゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、PICC-18、PICDEM、PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、Total Endurance、TSHARC、UniWinDriver、WiperLock、ZENA は、米国およびその他の国におけるマイクロチップ・テクノロジー社の登録商標です。

    SQTP は、米国におけるマイクロチップ・テクノロジー社のサービスマークです。

    その他、本書に記載されている商標は各社に帰属します。

    © 2011, Microchip Technology Incorporated, All RightsReserved.

    ISBN : 978-1-62076-187-8

    マイクロチップ社製デバイスのコード保護機能に関して次の点にご注意ください。

    • マイクロチップ社製品は、該当するマイクロチップ社データシートに記載の仕様を満たしています。

    • マイクロチップ社では、通常の条件ならびに仕様に従って使用した場合、マイクロチップ社製品のセキュリティ レベルは、現在市場に流通している同種製品の中でも最も高度であると考えています。

    • しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、マイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります。このような行

    為は知的所有権の侵害に該当する可能性が非常に高いと言えます。

    • マイクロチップ社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

    • マイクロチップ社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護機能とは、マイクロチップ社が製品を「解読不能」として保証するものではありません。

    コード保護機能は常に進歩しています。マイクロチップ社では、常に製品のコード保護機能の改善に取り組んでいます。マイクロ

    チップ社のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著作物に不正なアクセスを受けた場合は、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。

    マイクロチップ社では、ChandlerおよびTempe (アリゾナ州 )、Gresham( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とイドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。マイクロチップ社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関するマイクロチップ社の品質システムは ISO 9001:2000 認証を取得しています。

  • DS70362B_JP - p. 11-28 © 2012 Microchip Technology Inc.

    北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel:480-792-7200 Fax:480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

    アトランタDuluth, GA Tel:678-957-9614 Fax:678-957-1455

    ボストンWestborough, MA Tel:774-760-0087 Fax:774-760-0088

    シカゴItasca, IL Tel:630-285-0071 Fax:630-285-0075

    クリーブランドIndependence, OH Tel:216-447-0464 Fax:216-447-0643ダラスAddison, TX Tel:972-818-7423 Fax:972-818-2924

    デトロイトFarmington Hills, MI Tel:248-538-2250Fax:248-538-2260

    インディアナポリスNoblesville, IN Tel:317-773-8323Fax:317-773-5453

    ロサンゼルスMission Viejo, CA Tel:949-462-9523 Fax:949-462-9608

    サンタクララSanta Clara, CA Tel:408-961-6444Fax:408-961-6445

    トロントMississauga, Ontario, CanadaTel:905-673-0699 Fax:905-673-6509

    アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel:852-2401-1200Fax:852-2401-3431オーストラリア - シドニーTel:61-2-9868-6733Fax:61-2-9868-6755

    中国 - 北京Tel:86-10-8569-7000 Fax:86-10-8528-2104

    中国 - 成都Tel:86-28-8665-5511Fax:86-28-8665-7889

    中国 - 重慶Tel:86-23-8980-9588Fax:86-23-8980-9500

    中国 - 杭州Tel:86-571-2819-3187 Fax:86-571-2819-3189

    中国 - 香港 SARTel:852-2401-1200 Fax:852-2401-3431

    中国 - 南京Tel:86-25-8473-2460Fax:86-25-8473-2470

    中国 - 青島Tel:86-532-8502-7355Fax:86-532-8502-7205

    中国 - 上海Tel:86-21-5407-5533 Fax:86-21-5407-5066

    中国 - 瀋陽Tel:86-24-2334-2829Fax:86-24-2334-2393

    中国 - 深圳Tel:86-755-8203-2660 Fax:86-755-8203-1760

    中国 - 武漢Tel:86-27-5980-5300Fax:86-27-5980-5118

    中国 - 西安Tel:86-29-8833-7252Fax:86-29-8833-7256

    中国 - 厦門Tel:86-592-2388138 Fax:86-592-2388130

    中国 - 珠海Tel:86-756-3210040 Fax:86-756-3210049

    アジア / 太平洋インド - バンガロールTel:91-80-3090-4444 Fax:91-80-3090-4123

    インド - ニューデリーTel:91-11-4160-8631Fax:91-11-4160-8632

    インド - プネTel:91-20-2566-1512Fax:91-20-2566-1513

    日本 - 大阪Tel:81-66-152-7160 Fax:81-66-152-9310

    日本 - 横浜Tel:81-45-471- 6166 Fax:81-45-471-6122

    韓国 - 大邱Tel:82-53-744-4301Fax:82-53-744-4302

    韓国 - ソウルTel:82-2-554-7200Fax:82-2-558-5932 または 82-2-558-5934

    マレーシア - クアラルンプールTel:60-3-6201-9857Fax:60-3-6201-9859

    マレーシア - ペナンTel:60-4-227-8870Fax:60-4-227-4068

    フィリピン - マニラTel:63-2-634-9065Fax:63-2-634-9069

    シンガポールTel:65-6334-8870Fax:65-6334-8850

    台湾 - 新竹Tel:886-3-5778-366Fax:886-3-5770-955

    台湾 - 高雄Tel:886-7-536-4818Fax:886-7-330-9305

    台湾 - 台北Tel:886-2-2500-6610 Fax:886-2-2508-0102

    タイ - バンコクTel:66-2-694-1351Fax:66-2-694-1350

    ヨーロッパ

    オーストリア - ヴェルスTel:43-7242-2244-39Fax:43-7242-2244-393デンマーク - コペンハーゲンTel:45-4450-2828 Fax:45-4485-2829

    フランス - パリTel:33-1-69-53-63-20 Fax:33-1-69-30-90-79

    ドイツ - ミュンヘンTel:49-89-627-144-0 Fax:49-89-627-144-44

    イタリア - ミラノ Tel:39-0331-742611 Fax:39-0331-466781

    オランダ - ドリューネンTel:31-416-690399 Fax:31-416-690340

    スペイン - マドリッドTel:34-91-708-08-90Fax:34-91-708-08-91

    イギリス - ウォーキンガムTel:44-118-921-5869Fax:44-118-921-5820

    各国の営業所とサービス

    11/29/11

    http://support.microchip.comhttp://www.microchip.com

    セクション11. タイマ11.1 はじめに11.2 タイマのタイプ11.2.1 タイプAタイマ図11-1: タイプAタイマのブロック図

    11.2.2 タイプBタイマ図11-2: タイプBタイマのブロック図

    11.2.3 タイプCタイマ図11-3: タイプCタイマのブロック図

    11.3 制御レジスタレジスタ11-1: TxCON: タイプAタイマ制御レジスタ(x = 1)レジスタ11-2: TxCON: タイプBタイマ制御レジスタ(x = 2, 4, 6, 8)レジスタ11-3: TxCON: タイプCタイマ制御レジスタ(x = 3, 5, 7, 9)

    11.4 動作モード表11-1: タイマモードの設定11.4.1 タイマモード例11-1: 16ビット タイマモード向けの初期化コード図11-4: タイマ周期一致時の割り込みタイミング

    11.4.2 ゲート付きタイマモード例11-2: 16ビット ゲート付きタイマモード向けの初期化コード図11-5: ゲート付きタイマモードの動作

    11.4.3 同期カウンタモード例11-3: 16ビット同期カウンタモード向けの初期化コード

    11.4.4 非同期カウンタモード(タイプAタイマ専用)例11-4: 16ビット非同期カウンタモード向けの初期化コード

    11.5 タイマ割り込み11.6 32ビットタイマの設定表11-2: 32ビットタイマを形成する16ビットタイマの組み合わせ表11-3: 32ビット タイマモードの設定例11-5: 32ビットタイマへのアクセス図11-6: タイプB/タイプCタイマペアのブロック図(32ビットタイマ)

    11.7 32ビット タイマの動作モード11.7.1 タイマモード例11-6: 32ビット タイマモード向けの初期化コード

    11.7.2 ゲート付きタイマモード例11-7: 32ビット ゲート付きタイマモード向けの初期化コード

    11.7.3 同期カウンタモード例11-8: 32ビット同期カウンタモード向けの初期化コード

    11.8 省電力モード時のタイマ動作11.8.1 スリープモード時のタイマ動作11.8.2 アイドルモード時のタイマ動作

    11.9 タイマモジュールを使う周辺モジュール11.9.1 入力キャプチャと出力コンペアのタイムベース11.9.2 A/D特殊イベントトリガ11.9.3 外部割り込みピンとしてタイマを使う11.9.4 I/Oピンの制御

    11.10 レジスタマップ表11-4: タイマ関連のレジスタマップ表11-5: 割り込み制御関連のレジスタマップ

    11.11 関連アプリケーション ノート11.12 改訂履歴

    各国の営業所とサービス