201708能代のメインマイコンの保存データ送信用プログラム(データ送信部分を繰り返しタイマー割り込みにした)
Dependencies: MPU6050 MS5607 mbed
Fork of data_sousin by
main.cpp@6:69546ac823b1, 2017-08-16 (annotated)
- Committer:
- oichan
- Date:
- Wed Aug 16 12:05:21 2017 +0000
- Revision:
- 6:69546ac823b1
- Parent:
- 5:a81dd9b6962a
- Child:
- 7:33f48fc8fe7b
fixed a little
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oichan | 3:660279be8484 | 1 | |
oichan | 5:a81dd9b6962a | 2 | /*********************************************************** |
oichan | 4:918ea47cc35c | 3 | データ取得&送信するプログラム |
oichan | 4:918ea47cc35c | 4 | 各データの終わりの印として'$'を送信 |
oichan | 6:69546ac823b1 | 5 | 送信データが時間順にならないため、検証時は並び替えが必要 |
oichan | 4:918ea47cc35c | 6 | ************************************************************/ |
oichan | 3:660279be8484 | 7 | |
oichan | 5:a81dd9b6962a | 8 | //TODO: 30分以上の動作試験 |
oichan | 5:a81dd9b6962a | 9 | |
mbed_official | 0:bdbd3d6fc5d5 | 10 | #include "mbed.h" |
oichan | 3:660279be8484 | 11 | #include "MPU6050.h" |
oichan | 5:a81dd9b6962a | 12 | #include "MS5607I2C.h" |
mikawataru | 2:1dbaef45ae46 | 13 | |
oichan | 3:660279be8484 | 14 | #define ACC 16384 |
oichan | 6:69546ac823b1 | 15 | #define BUFFNUM 50 /*受信側のBUFFNUMと同値*/ |
oichan | 5:a81dd9b6962a | 16 | #define CHARANUM 50 |
oichan | 6:69546ac823b1 | 17 | #define RATE 50.0 /*RATE[Hz]でデータ取得*/ |
mikawataru | 2:1dbaef45ae46 | 18 | |
oichan | 5:a81dd9b6962a | 19 | |
oichan | 3:660279be8484 | 20 | MPU6050 mpu(p9,p10); |
oichan | 5:a81dd9b6962a | 21 | MS5607I2C ms5607(p9,p10,false); |
oichan | 3:660279be8484 | 22 | Serial subCP(p28, p27); |
oichan | 3:660279be8484 | 23 | Ticker log_timer; |
oichan | 3:660279be8484 | 24 | Timer t; |
mikawataru | 2:1dbaef45ae46 | 25 | |
oichan | 5:a81dd9b6962a | 26 | float Time[2][BUFFNUM] = {}; |
oichan | 5:a81dd9b6962a | 27 | float Acc[2][BUFFNUM] = {}; |
oichan | 5:a81dd9b6962a | 28 | float Alt[2][BUFFNUM] = {}; |
oichan | 5:a81dd9b6962a | 29 | char Moji[2][BUFFNUM][CHARANUM] = {}; |
oichan | 5:a81dd9b6962a | 30 | bool Row = false; |
oichan | 3:660279be8484 | 31 | int8_t Col = 0; |
oichan | 5:a81dd9b6962a | 32 | int Send_cnt = 0; |
oichan | 5:a81dd9b6962a | 33 | int Moji_cnt = 0; |
mikawataru | 2:1dbaef45ae46 | 34 | |
mikawataru | 2:1dbaef45ae46 | 35 | void _log(); |
mikawataru | 2:1dbaef45ae46 | 36 | |
oichan | 3:660279be8484 | 37 | int main(){ |
oichan | 3:660279be8484 | 38 | t.start(); |
oichan | 3:660279be8484 | 39 | log_timer.attach(_log,1.0/RATE); |
oichan | 4:918ea47cc35c | 40 | while(1){ |
oichan | 4:918ea47cc35c | 41 | if(Moji_cnt==0){ |
oichan | 5:a81dd9b6962a | 42 | sprintf(&Moji[Row][Send_cnt][0],"%f, %f, %f",Time[!Row][Send_cnt],Acc[!Row][Send_cnt],Alt[!Row][Send_cnt]); |
oichan | 4:918ea47cc35c | 43 | } |
oichan | 4:918ea47cc35c | 44 | subCP.putc(Moji[Row][Send_cnt][Moji_cnt]); |
oichan | 4:918ea47cc35c | 45 | Moji_cnt++; |
oichan | 4:918ea47cc35c | 46 | if(Moji_cnt==CHARANUM || Moji[Row][Send_cnt][Moji_cnt]=='\0'){ |
oichan | 4:918ea47cc35c | 47 | Moji_cnt = 0; |
oichan | 4:918ea47cc35c | 48 | subCP.putc('$'); |
oichan | 4:918ea47cc35c | 49 | Send_cnt++; |
oichan | 4:918ea47cc35c | 50 | if(Send_cnt==BUFFNUM){ |
oichan | 4:918ea47cc35c | 51 | Send_cnt = 0; |
oichan | 4:918ea47cc35c | 52 | } |
oichan | 4:918ea47cc35c | 53 | } |
oichan | 4:918ea47cc35c | 54 | } |
mikawataru | 2:1dbaef45ae46 | 55 | } |
mikawataru | 2:1dbaef45ae46 | 56 | |
oichan | 4:918ea47cc35c | 57 | /* データ取得関数 */ |
oichan | 3:660279be8484 | 58 | void _log(){ |
oichan | 5:a81dd9b6962a | 59 | mpu.getAccelero(&Acc[Row][Col]); |
oichan | 5:a81dd9b6962a | 60 | Alt[Row][Col] = ms5607.getAltitude(); |
oichan | 3:660279be8484 | 61 | Time[Row][Col] = t.read(); |
oichan | 5:a81dd9b6962a | 62 | if(Time[Row][Col]>=1800){ |
oichan | 5:a81dd9b6962a | 63 | t.reset(); |
oichan | 5:a81dd9b6962a | 64 | } |
oichan | 3:660279be8484 | 65 | Col++; |
oichan | 3:660279be8484 | 66 | if(Col == BUFFNUM){ |
oichan | 3:660279be8484 | 67 | Col = 0; |
oichan | 3:660279be8484 | 68 | Row = !Row; |
oichan | 3:660279be8484 | 69 | } |
oichan | 3:660279be8484 | 70 | } |
mikawataru | 2:1dbaef45ae46 | 71 |