![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
201708能代のメインマイコンの保存データ送信用プログラム
Dependencies: MPU6050 mbed MS5607
main.cpp@3:660279be8484, 2017-08-15 (annotated)
- Committer:
- oichan
- Date:
- Tue Aug 15 11:51:32 2017 +0000
- Revision:
- 3:660279be8484
- Parent:
- 2:1dbaef45ae46
- Child:
- 4:918ea47cc35c
201708????????????????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oichan | 3:660279be8484 | 1 | |
oichan | 3:660279be8484 | 2 | /* データ取得&送信するプログラム * |
oichan | 3:660279be8484 | 3 | * 各データの終わりの印として'$'を送信 * |
oichan | 3:660279be8484 | 4 | * なぜか割り込みタイマの周期が一定にならない */ |
oichan | 3:660279be8484 | 5 | |
mbed_official | 0:bdbd3d6fc5d5 | 6 | #include "mbed.h" |
oichan | 3:660279be8484 | 7 | #include "MPU6050.h" |
mikawataru | 2:1dbaef45ae46 | 8 | |
oichan | 3:660279be8484 | 9 | #define ACC 16384 |
oichan | 3:660279be8484 | 10 | #define BUFFNUM 30 /*受信側のBUFFNUMと同値*/ |
oichan | 3:660279be8484 | 11 | #define CHARANUM 30 |
oichan | 3:660279be8484 | 12 | #define RATE 30.0 /*RATE[Hz]でデータ取得*/ |
mikawataru | 2:1dbaef45ae46 | 13 | |
oichan | 3:660279be8484 | 14 | MPU6050 mpu(p9,p10); |
oichan | 3:660279be8484 | 15 | Serial subCP(p28, p27); |
oichan | 3:660279be8484 | 16 | Ticker log_timer; |
oichan | 3:660279be8484 | 17 | Ticker send_timer; |
oichan | 3:660279be8484 | 18 | Timer t; |
mikawataru | 2:1dbaef45ae46 | 19 | |
oichan | 3:660279be8484 | 20 | float Time[2][BUFFNUM] = {}; |
oichan | 3:660279be8484 | 21 | float Data[2][BUFFNUM] = {}; |
oichan | 3:660279be8484 | 22 | char Moji[2][BUFFNUM][CHARANUM] = {}; |
oichan | 3:660279be8484 | 23 | bool Row = false; |
oichan | 3:660279be8484 | 24 | int8_t Col = 0; |
oichan | 3:660279be8484 | 25 | int Send_cnt = 0; |
oichan | 3:660279be8484 | 26 | int Moji_cnt = 0; |
mikawataru | 2:1dbaef45ae46 | 27 | |
mikawataru | 2:1dbaef45ae46 | 28 | void _log(); |
oichan | 3:660279be8484 | 29 | void _send(); |
mikawataru | 2:1dbaef45ae46 | 30 | |
oichan | 3:660279be8484 | 31 | int main(){ |
oichan | 3:660279be8484 | 32 | t.start(); |
oichan | 3:660279be8484 | 33 | log_timer.attach(_log,1.0/RATE); |
oichan | 3:660279be8484 | 34 | while(1); |
mikawataru | 2:1dbaef45ae46 | 35 | } |
mikawataru | 2:1dbaef45ae46 | 36 | |
oichan | 3:660279be8484 | 37 | /* データ取得 */ |
oichan | 3:660279be8484 | 38 | void _log(){ |
oichan | 3:660279be8484 | 39 | //TODO: 高度データの取得 |
oichan | 3:660279be8484 | 40 | //TODO: 取得する加速度を合成加速度に変更 |
oichan | 3:660279be8484 | 41 | Data[Row][Col] = (float)mpu.getAcceleroRawZ()/ACC; |
oichan | 3:660279be8484 | 42 | Time[Row][Col] = t.read(); |
oichan | 3:660279be8484 | 43 | Col++; |
oichan | 3:660279be8484 | 44 | if(Col == BUFFNUM){ |
oichan | 3:660279be8484 | 45 | Col = 0; |
oichan | 3:660279be8484 | 46 | Row = !Row; |
oichan | 3:660279be8484 | 47 | send_timer.attach(_send,(BUFFNUM/(CHARANUM*RATE*RATE))*0.8); |
oichan | 3:660279be8484 | 48 | } |
oichan | 3:660279be8484 | 49 | } |
mikawataru | 2:1dbaef45ae46 | 50 | |
oichan | 3:660279be8484 | 51 | void _send(){ |
oichan | 3:660279be8484 | 52 | if(Moji_cnt==0){ |
oichan | 3:660279be8484 | 53 | sprintf(&Moji[Row][Send_cnt][0],"%f, %f",Time[!Row][Send_cnt],Data[!Row][Send_cnt]); |
mbed_official | 0:bdbd3d6fc5d5 | 54 | } |
oichan | 3:660279be8484 | 55 | subCP.putc(Moji[Row][Send_cnt][Moji_cnt]); |
oichan | 3:660279be8484 | 56 | Moji_cnt++; |
oichan | 3:660279be8484 | 57 | if(Moji_cnt==CHARANUM || Moji[Row][Send_cnt][Moji_cnt]=='\0'){ |
oichan | 3:660279be8484 | 58 | Moji_cnt = 0; |
oichan | 3:660279be8484 | 59 | subCP.putc('$'); |
oichan | 3:660279be8484 | 60 | Send_cnt++; |
oichan | 3:660279be8484 | 61 | if(Send_cnt==BUFFNUM){ |
oichan | 3:660279be8484 | 62 | Send_cnt = 0; |
oichan | 3:660279be8484 | 63 | send_timer.detach(); |
oichan | 3:660279be8484 | 64 | } |
oichan | 3:660279be8484 | 65 | } |
mikawataru | 2:1dbaef45ae46 | 66 | } |