201708能代のメインマイコンの保存データ送信用プログラム(データ送信部分を繰り返しタイマー割り込みにした)
Dependencies: MPU6050 MS5607 mbed
Fork of data_sousin by
main.cpp
- Committer:
- oichan
- Date:
- 2017-08-16
- Revision:
- 4:918ea47cc35c
- Parent:
- 3:660279be8484
- Child:
- 5:a81dd9b6962a
File content as of revision 4:918ea47cc35c:
/********************************************************** データ取得&送信するプログラム 各データの終わりの印として'$'を送信 ************************************************************/ #include "mbed.h" #include "MPU6050.h" #define ACC 16384 #define BUFFNUM 100 /*受信側のBUFFNUMと同値*/ #define CHARANUM 30 #define RATE 100.0 /*RATE[Hz]でデータ取得*/ MPU6050 mpu(p9,p10); 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; int8_t Col = 0; int Send_cnt = 0; int Moji_cnt = 0; void _log(); int main(){ t.start(); 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]); } 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: 取得する加速度を合成加速度に変更 Data[Row][Col] = (float)mpu.getAcceleroRawZ()/ACC; Time[Row][Col] = t.read(); Col++; if(Col == BUFFNUM){ Col = 0; Row = !Row; } }