diff --git a/cubesatsim/cubesatsim.ino b/cubesatsim/cubesatsim.ino index 477c4d63..ddd694a1 100644 --- a/cubesatsim/cubesatsim.ino +++ b/cubesatsim/cubesatsim.ino @@ -53,7 +53,9 @@ void setup() { sleep(5.0); - config_gpio(); + config_gpio(); + + read_reset_count(); // mode = FSK; // AFSK; @@ -154,6 +156,40 @@ void loop() { } +void read_reset_count() { + + long stored_reset, reset_flag; + EEPROM.get(16, reset_flag); + + if (reset_flag == 0xA07) // not first time, read stored reset count + { + + EEPROM.get(20, stored_reset); + reset_count = (int) stored_reset; + Serial.print("Reading reset count from EEPROM as "); + Serial.println(reset_count); + stored_reset += 1; // increment for next boot + EEPROM.put(20, stored_reset); + if (EEPROM.commit()) { + Serial.println("EEPROM successfully committed"); + } else { + Serial.println("ERROR! EEPROM commit failed"); + } + } else { // first time, store flag and reset count as 0 + + Serial.println("Storing reset count of 0 in EEPROM"); + reset_flag = 0xA07; + EEPROM.put(16, reset_flag); + stored_reset = 0; + EEPROM.put(20, stored_reset); + if (EEPROM.commit()) { + Serial.println("EEPROM successfully committed"); + } else { + Serial.println("ERROR! EEPROM commit failed"); + } + } +} + void send_packet() { // encode telemetry @@ -1982,20 +2018,6 @@ void start_payload() { mpuPresent = 1; mpu6050.begin(); -// if (eeprom_word_read(0) == 0xA07) - - Serial.println(" "); - float fa; - long la; - EEPROM.get(0, la); - Serial.println(la, HEX); - EEPROM.get(4, fa); - Serial.println(fa); - EEPROM.get(8, fa); - Serial.println(fa); - EEPROM.get(12, fa); - Serial.println(fa); - long flag; EEPROM.get(0, flag); @@ -2005,16 +2027,17 @@ void start_payload() { float xOffset; float yOffset; - float zOffset; + float zOffset; EEPROM.get(4, xOffset); EEPROM.get(8, yOffset); - EEPROM.get(12, zOffset); - + EEPROM.get(12, zOffset); + Serial.println(xOffset, DEC); Serial.println(yOffset, DEC); Serial.println(zOffset, DEC); mpu6050.setGyroOffsets(xOffset, yOffset, zOffset); + } else { @@ -2039,10 +2062,9 @@ void start_payload() { } Serial.println(" "); - float f; - long la; - EEPROM.get(0, la); - Serial.println(la, HEX); + float f; + EEPROM.get(0, flag); + Serial.println(flag, HEX); EEPROM.get(4, f); Serial.println(f); EEPROM.get(8, f);