EEPROM読み取り用

Dependencies:   mbed PQ_EEPROM

Files at this revision

API Documentation at this revision

Comitter:
tanahashi
Date:
Thu Mar 11 03:46:33 2021 +0000
Parent:
0:3fb5ae3480ae
Commit message:
version 1.2

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Mon Mar 08 16:55:29 2021 +0000
+++ b/main.cpp	Thu Mar 11 03:46:33 2021 +0000
@@ -10,110 +10,72 @@
 
 char data[128];
 
-char *phase_names[] =  {"SAFETY", "READY", "FLIGHT", "SEP", "EMERGENCY", "RECOVERY"};
-
-int mission_time;
-float flight_time;
-char phase;
-char f_launched;
-char f_burning;
-char f_apogee;
-char f_mission;
-char f_relay;
-char f_flight_pin;
-char f_sep;
-char f_buzzer;
-char f_sd;
-char f_gps;
-char f_adxl;
-char f_ina_in;
-char f_ina_ex;
-char f_lps;
-char f_mpu;
-char f_mpu_ak;
-float lat;
-float lon;
-int sat;
-int fix;
-float hdop;
-float alt;
-float geoid;
-float high_accel[3];
-float voltage_in;
-float current_in;
-float voltage_ex;
-float current_ex;
-float press;
-float temp;
-float accel[3];
-float gyro[3];
-float mag[3];
-
-int mission_hour, mission_min, mission_sec;
-
 int main()
 {
     for(int addr = 0x000000; addr < 0x07FFFF; addr += 0x80) {
         eeprom.read(addr, data, 128);
-        mission_time = *(int*)&data[0];
-        flight_time = *(float*)&data[4];
-        phase = *(float*)&data[8];
-        f_launched = *(float*)&data[9];
-        f_burning = *(float*)&data[10];
-        f_apogee = *(float*)&data[11];
-        f_mission = *(float*)&data[12];
-        f_relay = *(float*)&data[13];
-        f_flight_pin = *(float*)&data[14];
-        f_sep = *(float*)&data[15];
-        f_buzzer = *(float*)&data[16];
-        f_sd = *(float*)&data[17];
-        f_gps = *(float*)&data[18];
-        f_adxl = *(float*)&data[19];
-        f_ina_in = *(float*)&data[20];
-        f_ina_ex = *(float*)&data[21];
-        f_lps = *(float*)&data[22];
-        f_mpu = *(float*)&data[23];
-        f_mpu_ak = *(float*)&data[24];
-        lat = *(float*)&data[25];
-        lon = *(float*)&data[29];
-        sat = *(float*)&data[33];
-        fix = *(float*)&data[37];
-        hdop = *(float*)&data[41];
-        alt = *(float*)&data[45];
-        geoid = *(float*)&data[49];
+        short mission_time = *(float*)&data[0];
+        float flight_time = *(float*)&data[4];
+        int mission_time = *(int*)&data[0];
+        float flight_time = *(float*)&data[4];
+        char phase = data[8];
+        char launched = data[9];
+        char apogee = data[10];
+        char separated = data[11];
+        char landed = data[12];
+        char mission = data[13];
+        char relay = data[14];
+        char f_sep = data[15];
+        char f_buzzer = data[16];
+        char flight = data[17];
+        char f_sd = data[18];
+        char f_gps = data[19];
+        char f_adxl = data[20];
+        char f_ina_in = data[21];
+        char f_ina_ex = data[22];
+        char f_lps = data[23];
+        char f_mpu = data[24];
+        float lat = *(float*)&data[25];
+        float lon = *(float*)&data[29];
+        int sat = *(float*)&data[33];
+        int fix = *(float*)&data[37];
+        float hdop = *(float*)&data[41];
+        float alt = *(float*)&data[45];
+        float geoid = *(float*)&data[49];
+        float high_accel[3];
         high_accel[0] = *(float*)&data[53];
         high_accel[1] = *(float*)&data[57];
         high_accel[2] = *(float*)&data[61];
-        voltage_in = *(float*)&data[65];
-        current_in = *(float*)&data[69];
-        voltage_ex = *(float*)&data[73];
-        current_ex = *(float*)&data[77];
-        press = *(float*)&data[81];
-        temp = *(float*)&data[85];
+        float voltage_in = *(float*)&data[65];
+        float current_in = *(float*)&data[69];
+        float voltage_ex = *(float*)&data[73];
+        float current_ex = *(float*)&data[77];
+        float press = *(float*)&data[81];
+        float temp = *(float*)&data[85];
+        float accel[3];
         accel[0] = *(float*)&data[89];
         accel[1] = *(float*)&data[93];
         accel[2] = *(float*)&data[97];
+        float gyro[3];
         gyro[0] = *(float*)&data[101];
         gyro[1] = *(float*)&data[105];
         gyro[2] = *(float*)&data[109];
-        mag[0] = *(float*)&data[113];
-        mag[1] = *(float*)&data[117];
-        mag[2] = *(float*)&data[121];
-        
-        
-        mission_hour = mission_time / 3600;
+
+        int mission_hour = mission_time / 3600;
         mission_time %= 3600;
-        mission_min = mission_time / 60;
+        int mission_min = mission_time / 60;
         mission_time %= 60;
-        mission_sec = mission_time;
+        int mission_sec = mission_time;
+
+        char *phase_names[] =  {"SAFETY", "READY", "FLIGHT", "SEP", "EMERGENCY", "RECOVERY"};
 
         pc.printf(" mission time:\t%02d:%02d:%02d\r\n", mission_hour, mission_min, mission_sec);
         pc.printf(" flight time:\t%.3f[s]\r\n", flight_time);
         pc.printf(" phase:\t%s\r\n", phase_names[phase]);
-        pc.printf(" flags:\tLAUNCH\tBURNING\tAPOGEE\tMISSION\tRELAY\tFLIGHT\tSEP\tBUZZER\r\n");
-        pc.printf("       \t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\r\n", f_launched, f_burning, f_apogee, f_mission, f_relay, f_flight_pin, f_sep, f_buzzer);
-        pc.printf(" flags:\tSD\tGPS\tADXL\tINA_in\tINA_ex\tLPS\tMPU\tMPU_AK\r\n");
-        pc.printf("       \t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\r\n", f_sd, f_gps, f_adxl, f_ina_in, f_ina_ex, f_lps, f_mpu, f_mpu_ak);
+        pc.printf(" flags:\tLAUNCH\tAPOGEE\tSEPED\tLANDED\tMISSION\tRELAY\tSEP\tBUZZER\r\n");
+        pc.printf("       \t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\r\n", launched, apogee, separated, landed, mission, relay, sep, buzzer);
+        pc.printf(" flags:\tFLIGHT\tSD\tGPS\tADXL\tINA_in\tINA_ex\tLPS\tMPU\r\n");
+        pc.printf("       \t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\r\n", flight, f_sd, f_gps, f_adxl, f_ina_in, f_ina_ex, f_lps, f_mpu);
         pc.printf("\r\n");
         pc.printf(" lat:\t\t%.6f\r\n", lat);
         pc.printf(" lon:\t\t%.6f\r\n", lon);