20190816

Dependencies:   mbed

Revision:
8:cad966c09853
Parent:
7:7aaa14391264
Child:
9:dcddb19ad551
--- a/main.cpp	Sat Aug 03 14:02:58 2019 +0000
+++ b/main.cpp	Sat Aug 03 14:58:57 2019 +0000
@@ -8,32 +8,27 @@
 uint8_t ArrRx[ArrRxSize] = ArrRxInitializer;
 uint8_t *pArrTx = &ArrTx[0];
 uint8_t *pArrRx = &ArrRx[0];
+bool ArrRxCmplt = 0;
 
 void IntrTx() {
-    if ( ++pArrTx <= &ArrTx[ArrTxSize-1] ){
-    pc.putc(*pArrTx);
+    if ( ++pArrTx <= &ArrTx[ArrTxSize-1] ) pc.putc(*pArrTx);
+    else pc.attach(NULL, Serial::TxIrq);
     }
-    else{
-        pc.attach(NULL, Serial::TxIrq);
-        myled=0;  
-        }
-    }
+
+void StartTx(){
+        pArrTx = &ArrTx[0];
+        pc.putc(*pArrTx);
+        pc.attach(&IntrTx, Serial::TxIrq);
+    }//StartTx
 
 void CopyMemUint8(uint8_t *src = &ArrRx[0], uint8_t *dst = &ArrTx[0], int qty = ArrTxSize){
     for ( ; qty > 0; src++,dst++,qty-- ) *dst = *src;
-    }
-    
+    }  
+
 void IntrRx() {
     *pArrRx = pc.getc();
-    if ( pArrRx++ >= &ArrRx[ArrRxSize-1] ) {
-        pArrRx = &ArrRx[0];
-        CopyMemUint8();
-        pArrTx = &ArrTx[0];
-        pc.putc(*pArrTx);
-        pc.attach(&IntrTx, Serial::TxIrq);
-        myled=1;  
-        }
-    }
+    if ( pArrRx++ >= &ArrRx[ArrRxSize-1] ) { pArrRx = &ArrRx[0]; ArrRxCmplt = 1; }
+    }//IntrRx
 
 int main() {
             pc.attach(&IntrRx, Serial::RxIrq);
@@ -44,5 +39,10 @@
             //требуются постоянно,один раз и именно здесь.
             
     while(1) {
-    }
+        if ( ArrRxCmplt == 1 ){
+            CopyMemUint8();
+            StartTx();
+            ArrRxCmplt = 0;
+            }
+        }//while(1)
 }