Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed 2_P7100 2_EEPROM 2_MPU9250
Diff: main.cpp
- Revision:
- 0:f282852e22f1
- Child:
- 1:f6528bed0dce
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Jul 09 16:45:51 2020 +0000 @@ -0,0 +1,90 @@ +#include "mbed.h" +#include "EEPROM.h" +#include "LPS33HW.h" +#include "P7100.h" +#include "MPU9250.h" + +Timer t; //時間計測 +Serial pc(USBTX, USBRX); +LPS33HW lps(p9, p10); +EEPROM rom(p9, p10); +MPU9250 mpu(p9, p10); +P7100 p7100(p5, p6, p7, p8); + +void sensor_get_save(int); //自作関数プロトタイプ宣言 + +#define ADDR 0xA0 //EEPROMコントロールアドレス +int pointerAddress = 0; //EEPROM保存アドレス + +//main +int main() +{ + char data_read[128]; + + pc.baud(460800); //ボーレート変更 + + t.start(); //timer Start + + pc.printf("Start!"); + + lps.start(1); //気圧センサスタート + lps.start(1); //気圧センサスタート + wait(0.5); + + mpu.start(); //MPU9250 start&setup + mpu.accelsetup(3); + mpu.gyrosetup(3); + mpu.AKsetup(1); + wait(0.5); + + for(int n = 0; n < 100; n++) { //data get&save + sensor_get_save(n); + wait_ms(0); + } + + //read the data + pointerAddress = 0; + pc.printf("Data read\r\n"); + + for(int n = 0; n < 100; n++) { + rom.read(ADDR, pointerAddress, data_read, 128); + wait_ms(5); + pc.printf("%s", data_read); + + pointerAddress = pointerAddress + 128; //アドレスずらし + memset(data_read, '\0', 128 ); //初期化 + } + + pc.printf("Finish"); +} + +void sensor_get_save(int n) +{ + char s[64]; //データ取得配列 + + float accel[3], gyro[3]; //MPU9250data + float AX, AY, AZ, GX, GY, GZ; //MPU9250data + + float T = t.read(); //時刻データ取得 + float P = lps.data_read(); //気圧データ取得 + float v = p7100.v_read(); //電圧取得 + float tp = 0.25 * v - 0.125; //タンク圧力換算 + + mpu.accel_read(3, accel); + mpu.gyro_read(3, gyro); + AX = accel[0]; + AY = accel[1]; + AZ = accel[2]; + GX = gyro[0]; + GY = gyro[1]; + GZ = gyro[2]; + + sprintf(s, "%8.3f %8.3f %6.3f %5.3f %5.2f %5.2f %5.2f %5.2f %5.2f\r\n", T, P, tp, AX, AY, AZ, GX, GY, GZ); //floatからchar*へ変換 + + rom.write(ADDR, pointerAddress, s, 64); // write tha data + pointerAddress = pointerAddress + 64; //アドレスずらし + + pc.printf("%s\r\n", s); //check用 + + memset(s, '\0', 64 ); //初期化 +}