本FAQは、MSP430F4xxファミリーを参考に説明します。
【タイマ・モジュールの構成】
MSP430F4xxファミリーは、Timer_A、Timer_Bなる2種類の16ビットタイマ・モジュールを搭載します。
Timer_AおよびTimer_Bは、タイマ・ブロックとキャプチャ/コンペア・ブロックから構成されます。
Timer_Aは、キャプチャ/コンペア・ブロック(CCRx)を3つあるいは5つ実装しています。
出典:MSP430x4xx Family User’s Guide (SLAU056L)
Timer_Bは、キャプチャ/コンペア・ブロック(CCRx)を3つあるいは7つ実装しています。
出典:MSP430x4xx Family User’s Guide (SLAU056L)
【レジスタ配置アドレス】
Timer_Aにおいて、
キャプチャ/コンペア・ブロックを3つ実装したモジュールのレジスタ名はTimer0_A3(TA0)あるいはTimer_A(TA)で始まり、
キャプチャ/コンペア・ブロックを5つ実装したモジュールのレジスタ名はTimer1_A5(TA1)で始まります。
Timer_A3レジスタ群とTimer_A5レジスタ群の配置アドレスは異なります。
・ Timer0_A3 レジスタ
出典:MSP430x4xx Family User’s Guide (SLAU056L)
・Timer1_A5 レジスタ
出典:MSP430x4xx Family User’s Guide (SLAU056L)
Timer_Bのレジスタ名は、Timer_B(TB)で始まります。
キャプチャ/コンペア・ブロックの実装数でレジスタ名および配置アドレスの違いはありません。
・Timer_B レジスタ
出典:MSP430x4xx Family User’s Guide (SLAU056L)
【タイマ・モード】
Timer_AおよびTimer_Bの搭載する16ビットタイマは、下記4つのモードで動作します。
本FAQでは、Timer_Aを参考に説明します。
1. Stop mode
タイマのカウントが停止した状態です。
2. Continuous mode
タイマはカウント値0からカウント(インクリメント)し、カウント値が0xFFFFhに達すると0に戻りカウントを継続します。
3. Up mode
タイマはカウント値0からカウント(インクリメント)し、
TACCR0レジスタで設定された値に達すると0に戻りカウントを継続しますか。
4. Up/Down mode
タイマはカウント値0からカウント(インクリメント)し、
TxCCR0レジスタで設定した値に達するとデクリメントしカウントを継続します。
【キャプチャ/コンペア・モード】
Timer_AおよびTimer_Bのキャプチャ/コンペア・ブロックは、下記3つのモードに設定できます。
1. Capture mode
・ タイマ・カウント値をキャプチャ/コンペア・レジスタ(CCRx)に取り込みます。
・ タイマ・カウント値をキャプチャ/コンペア・レジスタ(CCRx)に取り込んだとき割り込みを生成できます。
2. Compare mode
・ タイマ・カウント値とキャプチャ/コンペア・レジスタ(CCRx)の値を比較します。
・ タイマ・カウント値とキャプチャ/コンペア・レジスタ(CCRx)の値が一致したとき割り込みを生成できます。
3. Output mode
・ タイマ・カウント値、キャプチャ/コンペア・レジスタ(CCRx)および
キャプチャ/コンペア・コントロール・レジスタ(CCTLx)の設定で、外部出力端子(OUTxピン)を制御します。