UD-GS01治具の試作プログラムです

Dependencies:   mbed nRF24L01P SDFileSystem

Revision:
14:894a7ca12e70
Parent:
13:8357704ad091
Child:
15:481f92a029dd
--- a/Goto_UD-GS01.cpp	Mon Dec 14 05:10:55 2020 +0000
+++ b/Goto_UD-GS01.cpp	Mon Dec 14 09:54:39 2020 +0000
@@ -29,7 +29,7 @@
 FILE     *fp;
 int      open_flg = 0;
 int      write_flg = 0;
-
+int      close_flg = 0;
 
 nRF24L01P my_nrf24l01p(D11, D12, D13, D10, D9,D8);    // mosi, miso, sck, csn, ce, irq
 //nRF24L01P my_nrf24l01p(p5, p6, p7, p8, p9, p10);    // mosi, miso, sck, csn, ce, irq
@@ -40,25 +40,26 @@
       
       if(rcv_flg == 1) { 
         
-        pc.printf("%s", &rxData2[rxDataIdx]);
+        pc.printf("%c", rxData2[rxDataIdx]);
         rxDataIdx++;
         
         
         if (rxDataIdx >= TRANSFER_SIZE){ 
+        write_flg = 1;
         rxDataIdx=0;
         rcv_flg = 0;
         i++;
-       
          }
         
                
       }
-      if(i>10){
+      /*
+      if(i>5){
           i = 0;
-          write_flg = 1;
-          }
+          close_flg = 1;
+      }
+      */    
 
-   //ここらへんにSDカードの書き込みを入れようかと!
 }
 
 void recieve(){
@@ -105,7 +106,6 @@
     
     SDFileSystem *sd = new SDFileSystem(PB_15, PB_14, PB_13, PC_4, "sd", NC, SDFileSystem::SWITCH_NONE, 20000000); // mosi, miso, sclk, name, cs, card detect, sw type, freq
     wait_ms(100);
-   // my_nrf24l01p.write( NRF24L01P_PIPE_P0, (char*)rxData,1);//dummy
    
    if(open_flg == 0){
         fp = fopen("/sd/testlog.txt", "a");             
@@ -124,7 +124,7 @@
          }
    }
 
-    interrput.attach(&timer, 1);//100 usec 10Khz
+    interrput.attach(&timer, 0.1);//100 usec 10Khz
     UDGS01.attach(recieve,Serial::RxIrq);//牛からのデータ受信したら割り込み発生してrecieveを呼び出す
 
 
@@ -134,26 +134,37 @@
        if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P0) ) {    //受信可能であれば
             
          rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, (char*)(rxData1),TRANSFER_SIZE );           
-            
+         
+         if(rcv_flg == 0){   
              memcpy(rxData2, rxData1, TRANSFER_SIZE);
-             wait(0.5);
+             wait(0.2);
+             }
 
 //             memcpy(rxData3, rxData1, TRANSFER_SIZE);
              
          if(open_flg == 1){
              fp = fopen("/sd/testlog.txt", "a");
+           if (fp == NULL)
+           {
+            printf("open error!!\r\n");
+//            while(1);
+           }else{
              open_flg = 2;
+           }
          }
          
          if(write_flg == 1){
-          fwrite(rxData2, sizeof(char), TRANSFER_SIZE, fp);
-          wait(0.5);       
-          fclose(fp);
-          open_flg = 1;
+//            fprintf(fp, "check\r\n");
+            fwrite(rxData2, sizeof(char), TRANSFER_SIZE, fp);
+            wait(1);       
+            
+            fclose(fp);
+            wait(0.2);
+//            close_flg = 0;
+            write_flg = 0;
+            open_flg = 1;
          }
-                       
-//             wait(1);
-
+         
        rcv_flg = 1;
 //       wait(1);
       }