当使用ACTIVITY_RECOGNITION功能时,如果不读取FIFO,Host Interrupt信号一直不会产生,需要一直读取FIFO,INT引脚才会发出中断信号。但是这样就无法通过INT引脚唤醒MCU,另外,ORIENTATION功能也是这种情况,无法在读FIFO之前发出Host Interrupt信号。
以下是配置代码:
if (bhy_install_sensor_callback(VS_TYPE_ACTIVITY_RECOGNITION, VS_WAKEUP, sensors_callback_basic))
{
return -GERRNO_INTER_M_ERR;
}
if (bhy_enable_virtual_sensor(VS_TYPE_ACTIVITY_RECOGNITION, VS_WAKEUP, 1, 0, VS_FLUSH_NONE, 0, 0))
{
return -GERRNO_INTER_M_ERR;
}
Solved! Go to Solution.
Hello zhouy,
中断信号的实际波形,方便用逻辑分析仪抓一下吗?
另外,你的MCU端配置的中断触发方式是什么样的?
您好!
固件为Bosch_PCB_7183_di03_BMI160_BMM150-7183_di03.2.1.11696_170103.h
MCU外部中断采用下降沿触发。
下图为上电后INT的波形,调用bhy_enable_virtual_sensor函数后INT引脚电平一直没有变化,维持在高电平。
您好!
我又测试了读FIFO和不读FIFO两种情况下INT引脚波形的对比图,不读FIFO时,INT引脚一直保持高电平;每10ms读一次FIFO时,INT大部分时间为低电平,当检测到运动后,会出现一个短暂的高电平。