![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
加速度とジャイロを100HzでSDに保存するプログラム
Dependencies: MPU6050 SDFileSystem mbed
Fork of SD_100Hz by
main.cpp@2:ac793e1667ec, 2017-12-24 (annotated)
- Committer:
- oichan
- Date:
- Sun Dec 24 10:47:14 2017 +0000
- Revision:
- 2:ac793e1667ec
- Parent:
- 0:bdbd3d6fc5d5
- Child:
- 3:1410f9acca63
SD 100Hz for LPC1768
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 0:bdbd3d6fc5d5 | 1 | #include "mbed.h" |
mbed_official | 0:bdbd3d6fc5d5 | 2 | #include "SDFileSystem.h" |
oichan | 2:ac793e1667ec | 3 | #include "MPU6050.h" |
oichan | 2:ac793e1667ec | 4 | |
oichan | 2:ac793e1667ec | 5 | #define RATE 100 //サンプリングレート[Hz] |
oichan | 2:ac793e1667ec | 6 | #define SAVE_NUM 100 //一度に保存するデータ数 SAVE_NUM/RATE [s]ごとに保存する |
oichan | 2:ac793e1667ec | 7 | |
oichan | 2:ac793e1667ec | 8 | SDFileSystem sd(p11, p12, p13, p14, "sd"); |
oichan | 2:ac793e1667ec | 9 | MPU6050 mpu(p9,p10); |
oichan | 2:ac793e1667ec | 10 | Timer jikan; |
oichan | 2:ac793e1667ec | 11 | Ticker get_t; |
oichan | 2:ac793e1667ec | 12 | Serial pc(USBTX,USBRX); |
oichan | 2:ac793e1667ec | 13 | FILE *bp; |
oichan | 2:ac793e1667ec | 14 | |
oichan | 2:ac793e1667ec | 15 | void _getData(); |
oichan | 2:ac793e1667ec | 16 | |
oichan | 2:ac793e1667ec | 17 | float Data[2][SAVE_NUM][4]={0}; |
oichan | 2:ac793e1667ec | 18 | int Data_cnt = 0; |
oichan | 2:ac793e1667ec | 19 | bool row; |
oichan | 2:ac793e1667ec | 20 | |
oichan | 2:ac793e1667ec | 21 | int main(){ |
oichan | 2:ac793e1667ec | 22 | pc.printf("Hello!\r\n"); |
mbed_official | 0:bdbd3d6fc5d5 | 23 | mkdir("/sd/mydir", 0777); |
oichan | 2:ac793e1667ec | 24 | bp = fopen("/sd/mydir/data.bin","ab"); //ファイルは作成は時間がかかるため先にやる |
oichan | 2:ac793e1667ec | 25 | fclose(bp); |
oichan | 2:ac793e1667ec | 26 | jikan.start(); |
oichan | 2:ac793e1667ec | 27 | get_t.attach(&_getData,1.0/RATE); |
oichan | 2:ac793e1667ec | 28 | while(1){ |
oichan | 2:ac793e1667ec | 29 | if(Data_cnt==SAVE_NUM){ |
oichan | 2:ac793e1667ec | 30 | Data_cnt=0; |
oichan | 2:ac793e1667ec | 31 | row = !row; |
oichan | 2:ac793e1667ec | 32 | bp = fopen("/sd/mydir/data.bin","ab"); |
oichan | 2:ac793e1667ec | 33 | fwrite(&Data[!row][0][0],sizeof(float),4*SAVE_NUM,bp); |
oichan | 2:ac793e1667ec | 34 | fclose(bp); |
oichan | 2:ac793e1667ec | 35 | } |
mbed_official | 0:bdbd3d6fc5d5 | 36 | } |
oichan | 2:ac793e1667ec | 37 | return 0; |
mbed_official | 0:bdbd3d6fc5d5 | 38 | } |
oichan | 2:ac793e1667ec | 39 | |
oichan | 2:ac793e1667ec | 40 | void _getData(){ |
oichan | 2:ac793e1667ec | 41 | Data[row][Data_cnt][0] = jikan.read(); |
oichan | 2:ac793e1667ec | 42 | mpu.getAccelero(&Data[row][Data_cnt][1]); |
oichan | 2:ac793e1667ec | 43 | Data_cnt++; |
oichan | 2:ac793e1667ec | 44 | } |