東北大学学友会準加盟団体 From The Earth の高高度ロケットFTE-06(通称:海豚)にて使用したソフトウェアです.ご自由にお使いください.このプログラムによって生じた損害について当団体は一切責任を負いません.また,各モジュールのライブラリは当団体が作成したものではないので再配布は禁止します.

Dependencies:   mbed FATFileSystem

Fork of FTE-06 by Tetsushi Amano

Revision:
11:c43040ddcfb8
Parent:
10:ef6fb2d8e2c8
Child:
12:a26df6ca5585
--- a/main.cpp	Sun Jun 11 11:37:11 2017 +0000
+++ b/main.cpp	Mon Jun 12 07:25:18 2017 +0000
@@ -31,7 +31,7 @@
 
 AnalogIn analog_rand(p20);//電圧読み取り用のピン
 
-double pres_dif[]= {0}; //気圧の変化をsize_difの数だけ保存
+double pres_dif[size_dif]= {0}; //気圧の変化をsize_difの数だけ保存
 uint32_t launch_detect_time=0;//発射検知の時間
 uint32_t fall_detect_time=0;//頂点検知の時間
 
@@ -46,9 +46,9 @@
 class Rocket_Data_Get_And_Save//ロケットの測定データを管理するクラス
 {
 private:
-    int check_eeprom;
+    int check_eeprom;//eepromへの書き込みができたかどうかのフラグ
     uint32_t time_ms_now;
-    string write_data_string;
+    char buf_eeprom[20];//書き込みデータの一時保存先
     inline void LSM_updata() {
         LSM.getAccel();
         acc[0]=conv2Gravity*LSM.accelX();
@@ -130,17 +130,17 @@
         L3GD.read(&gyro[0],&gyro[1],&gyro[2]);
         LSM_updata();
         save_data();//データの保存
+        write_data2eeprom();//eepromへの保存
     }
 
     void write_data2eeprom() {//eepromへの書き込み
         //最低限のデータのみ保存
-        char buf[10];
-        sprintf(buf,"%d",time);
-        write_data_string=buf;
-        sprintf(buf,"%f",pres);
-        write_data_string+= buf;
-        check_eeprom=eeprom.nbyte_write(eeprom_add,(char*)write_data_string.c_str(),sizeof((char*)write_data_string.c_str()));
-        eeprom_add+=sizeof((char*)write_data_string.c_str());
+        sprintf(buf_eeprom,"%d,%f.4\n",time,pres);
+        char write_byte=buf_eeprom[0];
+        for(uint32_t n=0;write_byte!='\0'&&write_byte!=NULL;n++){
+            write_byte=buf_eeprom[n];
+            check_eeprom=eeprom.byte_write(eeprom_add++,write_byte);
+            }
     }
 
     void delete_eeprom() { //eepromの中身を全消去