0
jimpaul15

問題:當我操控平板讓飛機動作,操控到一半時,回傳姿態頁面當機,即便我按下lock馬達仍然在轉動,這時候我用序列阜觀察,板子是有接收disenableSystem的指令,但是卡在該執行續的某個判斷式                         if (0 == getYawPitchRollInfo(yrpAttitude, pryRate, xyzAcc, xyzGravity,xyzMagnet))

出問題時 getYawPitchRollInfo(yrpAttitude, pryRate, xyzAcc, xyzGravity,xyzMagnet)一直無法return 0

往下深入看getYawPitchRollInfo的函示會卡在

while (fifoCount >= packetSize){
// read a packet from FIFO

printf("fifocount=%i\n,packetSize=%i\n",fifoCount,packetSize);
mpu.getFIFOBytes(fifoBuffer, packetSize);
printf("fifo=%i\n,packet=%i\n",fifoCount,packetSize);
// track FIFO count here in case there is > 1 packet available
// (this lets us immediately read more without waiting for an interrupt)
fifoCount -= packetSize;
}

跳不出去就當機了,請問該往DMP深入去看嗎??

還有幾個小問題:

1.有時候連線後平板顯示的姿態角都是零,但仍然可以操控馬達

2.嘗試調mpuxxxx.cpp中的 mpu.setRate(3);把括號裡面的值調大會比較不容易當機,但是姿態回傳就會不這麼tracking即時的姿態可能我翻到90度,大概要5-10秒數值才會追上90度

sean 回答了