|
在一遥控器产品中用MMA7455做游戏控制,工作时传感器在测试模式,待机时工作在运动检测模式,用户拿起遥控器,MMA7455立刻给出中断唤醒MCU。最近在有问题的产品中发现,MMA7455从测量模式进入运动检测模式时,INT1会输出高电平,导致系统始终进入不了睡眠状态,部分代码列出如下,有兴趣的朋友一起讨论下。
//清除传感器中断
void ClearIntLatch(void)
{
MMA7455L_Write(0x17, 0x03);
MMA7455L_Write(0x17, 0x00);
}
//传感器为运动检测模式
void MMA7455L_Motion_Set(void)
{
ClearIntLatch();//清除中断
MMA7455L_Write(0x16,0x42);//8g,Level Detection Mode
MMA7455L_Write(0x1A,0x2F);//Set Threshold to 3g,(LDTH=$2F)
}
//传感器为测试模式
void MMA7455L_Measurement_Set(void)
{
MMA7455L_Write(0x16,0x41);//8g,Measurement Mode,
ClearIntLatch();//清除中断
} |
|