1123367_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

1123367_ja-JP

1123367_ja-JP

FXLS8471Q - 加速度計モーション検出関数のサンプルコード

ねえ皆さん


加速度計のモーション検出機能の使用方法を示す単純なベアメタルのサンプルコードに興味がある場合は、NXP FRDM-KL25Z プラットフォームと FRDMSTBC-A8471 ボードで作業しながら FXLS8471Q加速度計 用に作成した例の1つを以下に示します


このFXLS8471Qは、X軸またはY軸のいずれかで最小40ミリ秒で315mgを超える動きを検出するように設定されています。イベントがトリガーされると、INT1 ピンに割り込みが生成されます。


void FXLS8471Q_Init (void)
{
  FXLS8471Q_WriteRegister(FT_MT_THS_REG, 0x85); // Set threshold to 312.5mg (5 x 62.5mg )
  FXLS8471Q_WriteRegister(FF_MT_COUNT_REG, 0x02); // Set debounce timer period to 40ms
  FXLS8471Q_WriteRegister(FF_MT_CFG_REG, 0xD8); // Latch enabled, motion detection enabled for X and Y axis
  FXLS8471Q_WriteRegister(CTRL_REG4, 0x04); // Motion interrupt enabled
  FXLS8471Q_WriteRegister(CTRL_REG5, 0x04); // Route motion interrupt to INT1 - PTD4
              
  FXLS8471Q_WriteRegister(CTRL_REG1, 0x29); // ODR = 12.5Hz, Active mode
}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍


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


void PORTD_IRQHandler()
{
  PORTD_PCR4 |= PORT_PCR_ISF_MASK; // Clear the interrupt flag 
  IntSource = FXLS8471Q_ReadRegister(FF_MT_SRC_REG); // Read the FF_MT_SRC register to clear the SRC_FFMT flag in the INT_SOURCE register      
  EventCounter++;
}‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

FXLS8471Q - Motion Interrupt.JPG



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


よろしくお願いします。

Tomas

加速度センサ
タグ(1)
評価なし
バージョン履歴
最終更新日:
‎02-05-2026 03:40 AM
更新者: