I-O DATA DEV2 / Mbed 2 deprecated ud-gs4-R_400G_SD_Log_No1

Dependencies:   mbed SDFileSystem_

Revision:
38:87b7b3de6e88
Parent:
37:1b459e0ef847
Child:
39:75f7b67a5747
--- a/main.cpp	Fri Sep 10 04:35:22 2021 +0000
+++ b/main.cpp	Fri Sep 10 06:41:37 2021 +0000
@@ -68,7 +68,7 @@
 
 SDFileSystem *sd = new SDFileSystem(PA_12, PA_11, PB_3, PA_15, "sd"); // mosi, miso, sclk, cs, name
 
-DigitalOut        led(PB_5);
+DigitalOut        myled(PB_5);
 DigitalIn         button(PB_4);
 int               btn_flag = 0;
 
@@ -93,7 +93,7 @@
 char filename1[16]= {};
 char filename2[16]= {};
 int ret = 0,init=1;
-//uint8_t *bufferIndex = NULL;
+short end_flag = 0;
 
 /*
 void timer(){
@@ -107,8 +107,6 @@
     static long scr2 = 0;
     static long ax,ay,az,as;
     static long ax2,ay2,az2,as2;
-    //char tmpbuffer[32] = {};
-    //static  int cnt;
     
     read3axes331(&tx,&ty,&tz);
     //キャリブレーションの補正
@@ -131,11 +129,11 @@
     //Total Max G
     if ( max_g < scr) {
         max_g = scr;
-        update=1;
+        //update=1;
         //pc.printf("%max g=%d \r\n",max_g);
         //Save EEPROM
         for(int i = 0; i < 4; i++){
-            pc.printf("writerom 0x%x\r\n",(max_g >> 8*i) & 0xFF);
+            //pc.printf("writerom 0x%x\r\n",(max_g >> 8*i) & 0xFF);
             writeEEPROMByte(i, (max_g >> 8*i) & 0xFF);
         }
     }
@@ -159,11 +157,7 @@
             if(ret < strlen(buffer1)){
                 pc.printf("fp1 write failed:%d. errno:%d. Reboot!!!\r\n",ret,errno);
                 NVIC_SystemReset();
-            }   
-            //ret = fflush(fp1);
-            //if(ret != 0){
-                //pc.printf("fp1 fflush failed:%d,%d\r\n",ret,errno);
-            //} 
+            }  
             memset(buffer1,0,sizeof(buffer1));
             sprintf(buffer1,"%s",stracc1);
         } else {
@@ -192,8 +186,8 @@
         //pc.printf("lis3dh:%s",stracc2);
         if(oldcount == 5000){
             float asc2 = (float)as2 / 500.0f;
-            pc.printf("avarage(old) x:%2.2f,y:%2.2f,z:%2.2f,scaler=%2.2f,max:%2.2f\r\n",
-            (float)ax2/500.0f*0.005,(float)ay2/500.0f*0.005,(float)az2/500.0f*0.005,(float)as2/500.0f*0.005, (float)tmp_max2*0.005);
+            //pc.printf("avarage(old) x:%2.2f,y:%2.2f,z:%2.2f,scaler=%2.2f,max:%2.2f\r\n",
+            //(float)ax2/500.0f*0.005,(float)ay2/500.0f*0.005,(float)az2/500.0f*0.005,(float)as2/500.0f*0.005, (float)tmp_max2*0.005);
             sprintf(stracc2,"%d,%d,%2.2f,%2.2f\r\n",timecount,time(NULL),asc2*0.005,(float)tmp_max2*0.005);
             
             if( (strlen(buffer2)+ strlen(stracc2)) > DATA_SIZE) {
@@ -203,11 +197,7 @@
                     pc.printf("fp2 write failed:%d. errno:%d. Reboot!!!\r\n",ret,errno);
                     NVIC_SystemReset();
                 }
-                //ret = fflush(fp2);
-                //if(ret != 0){
-                    //pc.printf("fp2 fflush failed:%d,%d\r\n",ret,errno);
-                //} 
-            
+               
                 memset(buffer2,0,sizeof(buffer2));
                 sprintf(buffer2,"%s",stracc2);
             } else {
@@ -219,6 +209,28 @@
             tmp_max2 = 0;
         }
     }
+    
+    if((time(NULL) % 300) == 0){
+        //5 minutes passed. Save File.
+        if(fp1){
+            fclose(fp1);
+            fp1 = NULL;
+        }
+        if(fp2){
+            fclose(fp2);
+            fp2 = NULL;
+        }
+        fp1 = fopen(filename1,"ab");
+        if(!fp1){
+            pc.printf("fp1 create file failed:%d\r\n",errno);
+            NVIC_SystemReset();
+        }
+        fp2 = fopen(filename2,"ab");
+        if(!fp2){
+            pc.printf("fp2 create file failed:%d\r\n",errno);
+            NVIC_SystemReset();
+        }
+    }
 
     if(time(NULL) > 86400){
             //Create New File
@@ -270,8 +282,11 @@
                 fclose(fp2);
                 fp2 = NULL;
             }
+            btn_flag = 0;
+            myled = 0;
+            end_flag = 1;
+            wait(1);        
         }
-        
 }
 
 int main()
@@ -315,7 +330,7 @@
         wait_ms(100);
     }
     //interrupt.attach_us(&timer,20000);//20ms
-    while(1)
+    while(!end_flag)
     {
         timecount++;
         oldcount++;
@@ -324,6 +339,8 @@
         //wait_ms(20);
         //wait_ms(1);
     }
+    pc.printf("Program End.\r\n");
+    return 0;
 }
 /*********** porting **************/
 void spiFormat(int b,int m)