查詢了相關的資料,測驗代碼中配置時間如下:
void MPU_Fall_Init(void) //自由落體中斷初始化
{
I2C_Write(MPU6050_RA_FF_THR,0x14); //設定自由落體加速度閾值為20mg
I2C_Write(MPU6050_RA_FF_DUR,0x0A); //設定自由落體檢測時間10ms
}
void MPU_Motion_Init(void) //加速度中斷初始化
{
I2C_Write(MPU6050_RA_MOT_THR,0x4A); //設定加速度閾值為74mg
I2C_Write(MPU6050_RA_MOT_DUR,0x14); //設定加速度檢測時間20ms
}
void MPU_Zero_Motion_Init(void) //靜止中斷初始化
{
I2C_Write(MPU6050_RA_ZRMOT_THR,0x40); //設定加速度閾值為64mg
I2C_Write(MPU6050_RA_ZRMOT_DUR,0x20); //設定靜止檢測時間32ms
}
而在配置中:
switch(INT_type)
{
case 1:
MPU_Fall_Init();
break;
case 2:
MPU_Motion_Init();
break;
case 3:
MPU_Zero_Motion_Init();
break;
}
I2C_Write(CONFIG,0x06); //配置外部引腳采樣和DLPF數字低通濾波器
I2C_Write(ACCEL_CONFIG,0x1C); //加速度傳感器量程和高通濾波器配置
I2C_Write(MPU6050_RA_INT_PIN_CFG,0X1C); //INT引腳低電平平時
I2C_Write(MPU6050_RA_INT_ENABLE,0x40); //中斷使能暫存器
這里我的問題是,如果在加速度模式下,是可以觸發的,自由落體的不可以,靜態的沒測。另一個現象是在2可以以后,再用1就可以了,但是不能斷電,斷電后就不行,必須從2再來一次,這個是怎么回事,哪項設定出了問題。
另一個沒有看明白的是,對中斷使能上,三項都是0x40,按資料看,這三項應該分別為0x80/0x40/0x20才對,但查得的代碼都是0x40,目前沒有參照,請用過的指點一下。

謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/268233.html
標籤:單片機/工控
上一篇:pycharm
