TEDサポートウェブ
>
Texas Instruments
>
マイコン
>
【TI:マイコン】 MSP430 キャプチャ割り込みとオーバーフロー割り込みを使用したカウント値の算出について
戻る
No : 4993
公開日時 : 2020/03/24 16:27
更新日時 : 2020/08/28 15:22
印刷
【TI:マイコン】 MSP430 キャプチャ割り込みとオーバーフロー割り込みを使用したカウント値の算出について
MSP430でタイマを連続運転し、キャプチャ割り込みとオーバーフロー割り込みを使用し、
カウント値(期間)を算出するときに注意する事があったら教えてください。
カテゴリー :
TEDサポートウェブ
>
Texas Instruments
>
マイコン
回答
キャプチャした値とオーバーフロー割り込み処理を実行した回数を用いて下記数式でカウント値(期間)を計算します。
カウント値 = 今キャプチャした値 + タイマのオーバーフロー回数 x 0x10000(フルカウント) - 前回キャプチャした値
オーバーフロー回数は、TAIFGあるいはTBIFGの割り込み要求を実行した回数になります。
ここで、キャプチャ割り込み要求(CCIFG)とタイマのオーバーフロー割り込み要求(TAIFG/TBIFG)が、
同じ(非常に近い)タイミングで発生したときに問題が発生することがあります。
2つのケースを考察します。
① キャプチャ割り込み要求(CCIFG)が先に発生し、直後にオーバーフロー割り込み要求(TAIFG/TBIFG)が発生したとき。
キャプチャした値はフルカウントに近い値となっており、オーバーフローの回数は加算されていません。
このとき、キャプチャ割り込み処理が先に実行され問題は発生しません。
② オーバーフロー割り込み要求(TAIFG/TBIFG)が先に発生し、
直後(オバーフロー割り込み処理が実行される前)にキャプチャ割り込み要求(CCIFG)が発生したとき。
キャプチャした値は0に近い値となっています。
キャプチャ割り込みの方が優先度が高いので、オーバーフロー割り込み要求を保留し、キャプチャ割り込み処理が実行されます。
オーバーフロー回数が “1” 加算される前に、カウント値を算出してしまうので問題となります。
TI E2Eの下記内容をあわせて参考にしてください