201708能代のメインマイコンの保存データ送信用プログラム

Dependencies:   MPU6050 mbed MS5607

Revision:
5:a81dd9b6962a
Parent:
4:918ea47cc35c
Child:
6:69546ac823b1
--- a/main.cpp	Wed Aug 16 08:46:37 2017 +0000
+++ b/main.cpp	Wed Aug 16 11:53:05 2017 +0000
@@ -1,29 +1,35 @@
 
-/**********************************************************
+/***********************************************************
     データ取得&送信するプログラム
     各データの終わりの印として'$'を送信
 ************************************************************/
 
+//TODO: 30分以上の動作試験
+
 #include "mbed.h"
 #include "MPU6050.h"
+#include "MS5607I2C.h"
 
 #define ACC 16384
 #define BUFFNUM 100  /*受信側のBUFFNUMと同値*/
-#define CHARANUM 30
+#define CHARANUM 50
 #define RATE 100.0   /*RATE[Hz]でデータ取得*/
 
+
 MPU6050 mpu(p9,p10);
+MS5607I2C  ms5607(p9,p10,false);
 Serial  subCP(p28, p27);
 Ticker  log_timer;
 Timer   t;
 
-float Time[2][BUFFNUM] = {};
-float Data[2][BUFFNUM] = {};
-char  Moji[2][BUFFNUM][CHARANUM] = {};
-bool Row = false;
+float  Time[2][BUFFNUM] = {};
+float  Acc[2][BUFFNUM]  = {};
+float  Alt[2][BUFFNUM]  = {};
+char   Moji[2][BUFFNUM][CHARANUM] = {};
+bool   Row = false;
 int8_t Col = 0;
-int Send_cnt = 0;
-int Moji_cnt = 0;
+int    Send_cnt = 0;
+int    Moji_cnt = 0;
 
 void _log();
 
@@ -32,7 +38,7 @@
     log_timer.attach(_log,1.0/RATE);
     while(1){
         if(Moji_cnt==0){
-            sprintf(&Moji[Row][Send_cnt][0],"%f, %f",Time[!Row][Send_cnt],Data[!Row][Send_cnt]);
+            sprintf(&Moji[Row][Send_cnt][0],"%f, %f, %f",Time[!Row][Send_cnt],Acc[!Row][Send_cnt],Alt[!Row][Send_cnt]);
         }
         subCP.putc(Moji[Row][Send_cnt][Moji_cnt]);
         Moji_cnt++;
@@ -49,10 +55,12 @@
 
 /*  データ取得関数   */
 void _log(){
-    //TODO: 高度データの取得
-    //TODO: 取得する加速度を合成加速度に変更
-    Data[Row][Col] = (float)mpu.getAcceleroRawZ()/ACC;
+    mpu.getAccelero(&Acc[Row][Col]);
+    Alt[Row][Col]  = ms5607.getAltitude();
     Time[Row][Col] = t.read();
+    if(Time[Row][Col]>=1800){
+        t.reset();
+    }
     Col++;
     if(Col == BUFFNUM){
         Col = 0;