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

Dependencies:   MPU6050 mbed MS5607

Revision:
4:918ea47cc35c
Parent:
3:660279be8484
Child:
5:a81dd9b6962a
--- a/main.cpp	Tue Aug 15 11:51:32 2017 +0000
+++ b/main.cpp	Wed Aug 16 08:46:37 2017 +0000
@@ -1,20 +1,20 @@
 
-/*  データ取得&送信するプログラム             *
- *  各データの終わりの印として'$'を送信        *
- *  なぜか割り込みタイマの周期が一定にならない   */
+/**********************************************************
+    データ取得&送信するプログラム
+    各データの終わりの印として'$'を送信
+************************************************************/
 
 #include "mbed.h"
 #include "MPU6050.h"
 
 #define ACC 16384
-#define BUFFNUM 30 /*受信側のBUFFNUMと同値*/
+#define BUFFNUM 100  /*受信側のBUFFNUMと同値*/
 #define CHARANUM 30
-#define RATE 30.0   /*RATE[Hz]でデータ取得*/
+#define RATE 100.0   /*RATE[Hz]でデータ取得*/
 
 MPU6050 mpu(p9,p10);
 Serial  subCP(p28, p27);
 Ticker  log_timer;
-Ticker  send_timer;
 Timer   t;
 
 float Time[2][BUFFNUM] = {};
@@ -26,15 +26,28 @@
 int Moji_cnt = 0;
 
 void _log();
-void _send();
 
 int main(){
     t.start();
     log_timer.attach(_log,1.0/RATE);
-    while(1);
+    while(1){
+        if(Moji_cnt==0){
+            sprintf(&Moji[Row][Send_cnt][0],"%f, %f",Time[!Row][Send_cnt],Data[!Row][Send_cnt]);
+        }
+        subCP.putc(Moji[Row][Send_cnt][Moji_cnt]);
+        Moji_cnt++;
+        if(Moji_cnt==CHARANUM || Moji[Row][Send_cnt][Moji_cnt]=='\0'){
+            Moji_cnt = 0;
+            subCP.putc('$');
+            Send_cnt++;
+            if(Send_cnt==BUFFNUM){
+                Send_cnt = 0;
+            }
+        }
+    }
 }
 
-/*  データ取得   */
+/*  データ取得関数   */
 void _log(){
     //TODO: 高度データの取得
     //TODO: 取得する加速度を合成加速度に変更
@@ -44,23 +57,6 @@
     if(Col == BUFFNUM){
         Col = 0;
         Row = !Row;
-        send_timer.attach(_send,(BUFFNUM/(CHARANUM*RATE*RATE))*0.8);
     }
 }
 
-void _send(){
-    if(Moji_cnt==0){
-        sprintf(&Moji[Row][Send_cnt][0],"%f, %f",Time[!Row][Send_cnt],Data[!Row][Send_cnt]);
-    }
-    subCP.putc(Moji[Row][Send_cnt][Moji_cnt]);
-    Moji_cnt++;
-    if(Moji_cnt==CHARANUM || Moji[Row][Send_cnt][Moji_cnt]=='\0'){
-        Moji_cnt = 0;
-        subCP.putc('$');
-        Send_cnt++;
-        if(Send_cnt==BUFFNUM){
-            Send_cnt = 0;
-            send_timer.detach();
-        }
-    }
-}
\ No newline at end of file