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

Dependencies:   mbed nRF24L01P SDFileSystem

Revision:
2:53829a66c0d9
Parent:
1:960cd07d2ae7
Child:
3:fe94916d0f12
--- a/Goto_UD-GS01.cpp	Tue Dec 08 01:27:19 2020 +0000
+++ b/Goto_UD-GS01.cpp	Tue Dec 08 09:14:10 2020 +0000
@@ -19,6 +19,7 @@
 int      rxDataCnt=0;
 int      i=0;
 int      which=0;
+int bufferidx=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
@@ -30,13 +31,17 @@
       if(rcv_flg) {
          out_flg=1;     
       } 
-      if(out_flg){    
-        pc.printf("%s", rxData[rxDataIdx]);
-        //ここにSDカードの書き込みを入れようかと!
+      if(out_flg){  
+        
+        pc.printf("%s", &rxData[rxDataIdx]);
         rxDataIdx++;
-        if (rxDataIdx >= TRANSFER_SIZE*2) rxDataIdx=0;
-      } 
-   
+        if (rxDataIdx >= TRANSFER_SIZE*2) 
+        rxDataIdx=0;
+        rcv_flg = 0;
+        
+      }
+
+   //ここらへんにSDカードの書き込みを入れようかと!
 }
 
 void recieve(){
@@ -44,10 +49,9 @@
              
      // ...read the data into the receive buffer
         txData[txDataIdx] = UDGS01.getc();  //getcharだと、PCからのキーボード入力という標準コンソール?のやつだからだめらしい
+//        pc.printf("tx[%d] = %s", txDataIdx, &txData[txDataIdx]);
         txDataIdx++;
-        
-        
-        
+              
         if (txDataIdx == TRANSFER_SIZE) {//最初の32回
                snd_flg = 1;
                
@@ -61,7 +65,7 @@
       
 int main() {
 
-  int bufferidx=0;
+ 
    
 
     my_nrf24l01p.powerUp();
@@ -83,7 +87,7 @@
     wait_ms(100);
    // my_nrf24l01p.write( NRF24L01P_PIPE_P0, (char*)rxData,1);//dummy
 
-    interrput.attach_us(&timer, 500);//100 usec 10Khz
+    interrput.attach(&timer, 2);//100 usec 10Khz
     UDGS01.attach(recieve,Serial::RxIrq);//牛からのデータ受信したら割り込み発生してrecieveを呼び出す
 
  //   my_nrf24l01p.flush_rx_fifo();
@@ -91,7 +95,6 @@
        
        if ( my_nrf24l01p.readable(NRF24L01P_PIPE_P0) ) {    //受信?
             // ...read the data into the receive buffer
-            if(which == 0){
             if (rxDataIdx < TRANSFER_SIZE){
                  bufferidx = TRANSFER_SIZE;
             }
@@ -101,22 +104,29 @@
              
             rxDataCnt = my_nrf24l01p.read( NRF24L01P_PIPE_P0, (char*)(rxData+bufferidx),TRANSFER_SIZE );
             //myled1 = !myled1;
-            //if (rcv_flg==0) 
-            
-            
+            //if (rcv_flg==0)   
              
             rcv_flg = 1;                                       
-        }
+       
        } 
+
        if (snd_flg==1) {//最初のバッファ
                snd_flg=0;
+               
                my_nrf24l01p.write( NRF24L01P_PIPE_P0, (char *)txData , TRANSFER_SIZE  );
+//               for(i=0; i>32; i++){
+//               pc.printf("tx[%d] = %s", 30, txData[30]);
+//               }
                pc.putc('1');
                wait(1);
          }    
          else if (snd_flg==2)  {//後半のバッファ         
                snd_flg=0;
+               
                my_nrf24l01p.write( NRF24L01P_PIPE_P0, (char*)(txData+TRANSFER_SIZE) , TRANSFER_SIZE  );
+//               for(i=0; i>63; i++){
+//               pc.printf("%s", txData[i]);
+//               }
                  pc.putc('2');
                  wait(1);