1116986_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1116986_ja-JP

1116986_ja-JP

FXLS8471Q - 加速度計の過渡検出関数のサンプルコード

ねえ皆さん


加速度計の過渡検出機能の使用方法を示す単純なベアメタルの例コードがよく求められるため、 ここでは、NXP FRDM-KL25Z プラットフォーム FRDM-FXS-MULT2-Bセンサ拡張ボード を使用して FXLS8471Q加速度計 用に作成した例の1つを共有することにしました


このサンプルコードは、 AN4693 の Python コードスニペットを補完するものです。FXLS8471Qは、X軸またはY軸のいずれかで最小40msの期間、315mgを超える「瞬間的な」加速度変化を検出するように設定されています。イベントがトリガーされると、INT1 ピンに割り込みが生成されます。


void FXLS8471Q_Init (void)
{
 FXLS8471Q_WriteRegister(TRANSIENT_THS_REG, 0x85); // Set threshold to 312.5mg (5 x 62.5mg )
 FXLS8471Q_WriteRegister(TRANSIENT_COUNT_REG, 0x02); // Set debounce timer period to 40ms
 FXLS8471Q_WriteRegister(TRANSIENT_CFG_REG, 0x16); // Enable transient detection for X and Y axis, latch enabled

 FXLS8471Q_WriteRegister(CTRL_REG4, 0x20); // Acceleration transient interrupt enabled
 FXLS8471Q_WriteRegister(CTRL_REG5, 0x20); // Route acceleration transient interrupt to INT1 - PTA5

 FXLS8471Q_WriteRegister(CTRL_REG1, 0x29); // ODR = 12.5Hz, Active mode
}
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


ISRでは、次のスクリーンショットに示すように、割り込みフラグのみがクリアされ、TRANSIENT_SRC(0x1E)レジスタが読み取られて、SRC_TRANSステータスビットがクリアされ、INT1ピンがディアサートされます。


void PORTA_IRQHandler()
{
 PORTA_PCR5 |= PORT_PCR_ISF_MASK; // Clear the interrupt flag
 IntSource = FXLS8471Q_ReadRegister(TRANSIENT_SRC_REG); // Read the TRANSIENT_SRC register to clear the SRC_TRANS flag in the INT_SOURCE register
 EventCounter++;
}
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Transient interrupt.JPG



添付されている完全なソースコードを見つけることができます。この簡単なサンプルコードに関して質問がある場合は、以下でお気軽にお問い合わせください。フィードバックや提案も大歓迎です。


よろしくお願いします。

Tomas

加速度センサ
Tags (1)
No ratings
Version history
Last update:
‎02-05-2026 03:44 AM
Updated by: