mmc5603指南针添加校准记录,不重启之前,校准信息都在。
authorSnickerSun <snickersun@163.com>
Fri, 26 Jan 2024 03:36:33 +0000 (11:36 +0800)
committerSnickerSun <snickersun@163.com>
Fri, 26 Jan 2024 03:36:33 +0000 (11:36 +0800)
code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c

index dc4d7eb..23f82dc 100644 (file)
@@ -156,25 +156,18 @@ extern uint8_t is_xts_test_done(void);
        /* This variable is used to save calibrated mag sensor parameters */\r
        float caliMagPara[4] = {0.0f};  \r
        /* convert the coordinate system */             \r
-       acc_coordinate_raw_to_real(A_LAYOUT, acc_raw_data, acc_real_data);                      \r
-       MMC_LOG("acc_coordinate_raw_to_real raw(%.02f,%.02f,%.02f) , real(%.02f,%.02f,%.02f)\r\n",\r
-       acc_raw_data[0],acc_raw_data[1],acc_raw_data[2],\r
-       acc_real_data[0],acc_real_data[1],acc_real_data[2]\r
-       );      \r
-       /* Get the MMC5603 mag raw data, unit is gauss */\r
+       acc_coordinate_raw_to_real(A_LAYOUT, acc_raw_data, acc_real_data);                              \r
+       // /* Get the MMC5603 mag raw data, unit is gauss */\r
        MMC5603_GetData(mag_raw_data);\r
 \r
        /* Convert the coordinate system */             \r
        mag_coordinate_raw_to_real(M_LAYOUT, mag_raw_data, mag_real_data);              \r
-       MMC_LOG("mag_coordinate_raw_to_real raw(%.02f,%.02f,%.02f) , real(%.02f,%.02f,%.02f)\r\n",\r
-       mag_raw_data[0],mag_raw_data[1],mag_raw_data[2],\r
-       mag_real_data[0],mag_real_data[1],mag_real_data[2]\r
-       );      \r
-\r
        /* Below functions are algorithm interface. \r
                * input acc, mag data into algorithm\r
                * make sure that acc and mag XYZ data meet the right-hand(right-front-up) coordinate system\r
                */\r
+\r
+       // MMC_LOG("acc_raw :%f %f %f  mag_raw:%f %f %f \r\n",acc_real_data[0],acc_real_data[1],acc_real_data[2],mag_real_data[0],mag_real_data[1],mag_real_data[2]);\r
        MainAlgorithmProcess(acc_real_data, mag_real_data, 1);  \r
        \r
        /* Get calibrated mag data */\r
@@ -186,57 +179,23 @@ extern uint8_t is_xts_test_done(void);
        calMagZ = caliMag[2];\r
        \r
        \r
-       /* Get orientation vector */\r
-       if (GetCalOri(acc_real_data, caliMag, caliOri) == 1 )\r
-       {\r
+       // MMC_LOG("calmag :%f %f %f \r\n",caliMag[0],caliMag[1],caliMag[2]);\r
 \r
-               /* Get the accuracy of the algorithm */\r
-               iAccuracy = GetMagAccuracy();\r
-       \r
-               /* Get the fAzimuth Pitch Roll for the eCompass */\r
-                       fAzimuth  = caliOri[0];\r
-                       fPitch    = caliOri[1];\r
-                       fRoll     = caliOri[2]; \r
-                       if(iAccuracy == 3){\r
-                               MMC_LOG("== Mag x %.02F,y %.02F , z %.02F\r\n",\r
-                               calMagX,//高斯X\r
-                               calMagY,//高斯Y\r
-                               calMagZ//高斯Z\r
-                               );\r
-                               MMC_LOG("iAccuracy %d== Acc Azimuth %.02F,Pitch %.02F , Roll %.02F\r\n", \r
-                               iAccuracy,//可信度\r
-                               fAzimuth, //水平方向角,左转右转\r
-                               fPitch,//上下俯仰角\r
-                               fRoll//左右翻滚角\r
-                               );\r
-                       }else{\r
-                               MMC_LOG("--iAccuracy %d < 3 skip\r\n", \r
-                               iAccuracy   //可信度\r
-                               );\r
-\r
-                               MMC_LOG("--== Mag x %.02F,y %.02F , z %.02F\r\n",\r
-                               calMagX,//高斯X\r
-                               calMagY,//高斯Y\r
-                               calMagZ//高斯Z\r
-                               );\r
-                               MMC_LOG("--iAccuracy %d== Acc Azimuth %.02F,Pitch %.02F , Roll %.02F\r\n", \r
-                               iAccuracy,//可信度\r
-                               fAzimuth, //水平方向角,左转右转\r
-                               fPitch,//上下俯仰角\r
-                               fRoll//左右翻滚角\r
-                               );\r
-                       \r
-                       }\r
-       }\r
+       GetCalOri(acc_real_data, caliMag, caliOri);\r
+       fAzimuth  = caliOri[0];\r
+       fPitch    = caliOri[1];\r
+       fRoll     = caliOri[2]; \r
+       iAccuracy = GetMagAccuracy();\r
+\r
+       // MMC_LOG("fAzimuth =%f iAccuracy=%d\r\n",fAzimuth,iAccuracy); \r
 \r
-         \r
        /* Get the SET Flag from algorithm */   \r
-       if(GetMagSaturation())  \r
-       {\r
-               //MEMSIC_Magnetic_Sensor_SET(); //Do SET action\r
-               MMC_LOG("Do SET action MMC5603_SET\r\n");\r
-               MMC5603_SET();\r
-       }\r
+       // if(GetMagSaturation())  \r
+       // {\r
+       //      //MEMSIC_Magnetic_Sensor_SET(); //Do SET action\r
+       //      MMC_LOG("Do SET action MMC5603_SET\r\n");\r
+       //      MMC5603_SET();\r
+       // }\r
        \r
        /* Get corrected mag data */\r
        save_flag = GetCalPara(caliMagPara);\r
@@ -260,7 +219,7 @@ extern uint8_t is_xts_test_done(void);
        clock_gettime(CLOCK_MONOTONIC, &time);\r
        uint32_t _endTimestamp = (uint32_t ) time.tv_sec * SEC_TO_MILLISEC + time.tv_nsec / MILLISEC_TO_NANOSEC;\r
        \r
-       MMC_LOG("mmc5603_check  cost %u\r\n",(_endTimestamp-_startTimestamp));\r
+       // MMC_LOG("mmc5603_check  cost %u\r\n",(_endTimestamp-_startTimestamp));\r
        return 0;\r
 }\r
 \r