ここ:
最初のコード ブロックでは、CTRL_REG4 に対するコメントが間違っている (または少なくとも誤解を招く) と思います。
void FXLS8471Q_Init (void)
{
FXLS8471Q_WriteRegister(CTRL_REG1, 0x00); // Standby mode
FXLS8471Q_WriteRegister(F_SETUP_REG, 0xA0); // FIFO Fill mode, 32 samples
FXLS8471Q_WriteRegister(CTRL_REG4, 0x40); // Enable FIFO interrupt, push-pull, active low
FXLS8471Q_WriteRegister(CTRL_REG5, 0x40); // Route the FIFO interrupt to INT1 - PTA5
FXLS8471Q_WriteRegister(CTRL_REG1, 0x19); // ODR = 100Hz, Active mode
}データシートによると、CTRL_REG 4には割り込み有効化ビットのみ含まれており、プッシュプルやアクティブ ロー制御は含まれていません。
プッシュ プルおよびアクティブ ローの制御は CTRL_REG 3にあります (デフォルトはプッシュ プルとアクティブ ローです)。
ありがとうございます。
FXLS896xAF 用のこのようなサンプルがいくつかあれば便利です。
こんにちは、アンドリュー。
フィードバックをいただき、ありがとうございます。おっしゃる通り、出力モード (プッシュプル vs. オープンドレイン) と極性 (アクティブ ロー vs. ハイ) は、どちらも CTRL_REG3 レジスタのビット pp_od と ipol を使用して設定可能です。
これを明確にするために、FXLS8471Q_Init 関数を更新しました。
void FXLS8471Q_Init (void)
{
FXLS8471Q_WriteRegister(CTRL_REG1, 0x00); // Standby mode
FXLS8471Q_WriteRegister(F_SETUP_REG, 0xA0); // FIFO Fill mode, 32 samples
FXLS8471Q_WriteRegister(CTRL_REG3, 0x00); // Push-pull, active low interrupt
FXLS8471Q_WriteRegister(CTRL_REG4, 0x40); // Enable FIFO interrupt
FXLS8471Q_WriteRegister(CTRL_REG5, 0x40); // Route the FIFO interrupt to INT1 - PTA5
FXLS8471Q_WriteRegister(CTRL_REG1, 0x19); // ODR = 100Hz, Active mode
}
BR、トーマス