2017年3月,伊豆大島共同打上実験 CORE_缶ロケチーム電装
Dependencies: MPU6050 MS5607 mbed SDFileSystem
main.cpp@1:ec75f428c6b3, 2017-02-18 (annotated)
- Committer:
- mikawataru
- Date:
- Sat Feb 18 17:02:59 2017 +0000
- Revision:
- 1:ec75f428c6b3
- Parent:
- 0:10a9c9c5ce83
- Child:
- 2:b6eb08d059cc
SD??20Hz
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mikawataru | 0:10a9c9c5ce83 | 1 | #include "mbed.h" |
mikawataru | 0:10a9c9c5ce83 | 2 | #include "MS5607I2C.h" |
mikawataru | 0:10a9c9c5ce83 | 3 | #include "MPU6050.h" |
mikawataru | 1:ec75f428c6b3 | 4 | #include "SDFileSystem.h" |
mikawataru | 0:10a9c9c5ce83 | 5 | |
mikawataru | 1:ec75f428c6b3 | 6 | #define RATE 20 |
mikawataru | 0:10a9c9c5ce83 | 7 | |
mikawataru | 0:10a9c9c5ce83 | 8 | MS5607I2C ms5607(p9, p10, false); |
mikawataru | 0:10a9c9c5ce83 | 9 | MPU6050 mpu(p9,p10); |
mikawataru | 0:10a9c9c5ce83 | 10 | DigitalIn sw(p21); |
mikawataru | 0:10a9c9c5ce83 | 11 | DigitalOut myled(LED1); |
mikawataru | 0:10a9c9c5ce83 | 12 | Serial pc(USBTX, USBRX); |
mikawataru | 1:ec75f428c6b3 | 13 | SDFileSystem sd(p11, p12, p13, p14, "sd"); |
mikawataru | 0:10a9c9c5ce83 | 14 | |
mikawataru | 1:ec75f428c6b3 | 15 | Timer timer; |
mikawataru | 0:10a9c9c5ce83 | 16 | Ticker loop_measure; |
mikawataru | 0:10a9c9c5ce83 | 17 | |
mikawataru | 0:10a9c9c5ce83 | 18 | int8_t cnt = 0; |
mikawataru | 1:ec75f428c6b3 | 19 | bool mode = 0; |
mikawataru | 1:ec75f428c6b3 | 20 | float pressure[2][RATE],temperature[2][RATE]; |
mikawataru | 1:ec75f428c6b3 | 21 | float acc[2][RATE][3],gyro[2][RATE][3]; |
mikawataru | 1:ec75f428c6b3 | 22 | float t[2][RATE]; |
mikawataru | 1:ec75f428c6b3 | 23 | FILE *fp; |
mikawataru | 1:ec75f428c6b3 | 24 | |
mikawataru | 0:10a9c9c5ce83 | 25 | void _Launch(){ |
mikawataru | 0:10a9c9c5ce83 | 26 | myled = 1; |
mikawataru | 0:10a9c9c5ce83 | 27 | } |
mikawataru | 0:10a9c9c5ce83 | 28 | void _measure(){ |
mikawataru | 1:ec75f428c6b3 | 29 | t[mode][cnt] = timer.read(); |
mikawataru | 1:ec75f428c6b3 | 30 | pressure[mode][cnt] = ms5607.getPressure(); |
mikawataru | 1:ec75f428c6b3 | 31 | temperature[mode][cnt] = ms5607.getTemperature(); |
mikawataru | 1:ec75f428c6b3 | 32 | mpu.getAccelero(&acc[mode][cnt][0]); |
mikawataru | 1:ec75f428c6b3 | 33 | mpu.getGyro(&gyro[mode][cnt][0]); |
mikawataru | 0:10a9c9c5ce83 | 34 | // pc.printf("%f,%f,%f\t",pressure[cnt],temperature[cnt], altitude[cnt]); |
mikawataru | 0:10a9c9c5ce83 | 35 | // pc.printf("%f,%f,%f,%f,%f,%f\r\n",acc[cnt][0],acc[cnt][1],acc[cnt][2],gyro[cnt][0],gyro[cnt][1],gyro[cnt][2]); |
mikawataru | 1:ec75f428c6b3 | 36 | fprintf(fp, "%f,%f,%f,%f,%f,%f,%f,%f,%f\r\n", |
mikawataru | 1:ec75f428c6b3 | 37 | t[mode][cnt],pressure[mode][cnt],temperature[mode][cnt],acc[mode][cnt][0], |
mikawataru | 1:ec75f428c6b3 | 38 | acc[mode][cnt][1],acc[mode][cnt][2],gyro[mode][cnt][0],gyro[mode][cnt][1],gyro[mode][cnt][2] |
mikawataru | 1:ec75f428c6b3 | 39 | ); |
mikawataru | 0:10a9c9c5ce83 | 40 | cnt++; |
mikawataru | 1:ec75f428c6b3 | 41 | if(cnt==RATE){ |
mikawataru | 1:ec75f428c6b3 | 42 | fclose(fp); |
mikawataru | 1:ec75f428c6b3 | 43 | fp = fopen("/sd/sdtest.txt", "a"); |
mikawataru | 1:ec75f428c6b3 | 44 | mode =! mode; |
mikawataru | 1:ec75f428c6b3 | 45 | cnt = 0; |
mikawataru | 1:ec75f428c6b3 | 46 | } |
mikawataru | 0:10a9c9c5ce83 | 47 | } |
mikawataru | 0:10a9c9c5ce83 | 48 | |
mikawataru | 0:10a9c9c5ce83 | 49 | int main() { |
mikawataru | 1:ec75f428c6b3 | 50 | timer.start(); |
mikawataru | 1:ec75f428c6b3 | 51 | fp = fopen("/sd/sdtest.txt", "w"); |
mikawataru | 1:ec75f428c6b3 | 52 | fprintf(fp, "pressure,temperature,ax,ay,az,gx,gy,gz\r\n"); |
mikawataru | 0:10a9c9c5ce83 | 53 | myled = 0; |
mikawataru | 1:ec75f428c6b3 | 54 | loop_measure.attach(&_measure,1.0/RATE); |
mikawataru | 0:10a9c9c5ce83 | 55 | while(1){ |
mikawataru | 1:ec75f428c6b3 | 56 | if(sw==0)_Launch(); |
mikawataru | 0:10a9c9c5ce83 | 57 | } |
mikawataru | 0:10a9c9c5ce83 | 58 | } |