Test1

Dependencies:   mbed

main.cpp

Committer:
VASKO
Date:
2019-08-03
Revision:
9:dcddb19ad551
Parent:
8:cad966c09853
Child:
10:f7a320faef76

File content as of revision 9:dcddb19ad551:

#include "PrjDefs.h"

Serial pc(USBTX,USBRX);

DigitalOut myled(LED1);

uint8_t ArrTx[ArrTxSize] = ArrTxInitializer;
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);
    else pc.attach(NULL, Serial::TxIrq);
    }

void StartTx(){
        pArrTx = &ArrTx[0];
        pc.putc(*pArrTx);
        pc.attach(&IntrTx, Serial::TxIrq);
    }//StartTx

void IntrRx() {
    *pArrRx = pc.getc();
    if ( pArrRx++ >= &ArrRx[ArrRxSize-1] ) { pArrRx = &ArrRx[0]; ArrRxCmplt = 1; }
    }//IntrRx

int main() {
            pc.attach(&IntrRx, Serial::RxIrq);
            pc.attach(NULL, Serial::TxIrq);//я УПЁРТЫЙ дебил
            
            //Exige Monumentum
            //Я дебил,потому что хотел выполнить действия,которые
            //требуются постоянно,один раз и именно здесь.
            
    while(1) {
        if ( ArrRxCmplt == 1 ){
            memcpy(&ArrTx[0], &ArrRx[0], ArrTxSize);
            StartTx();
            ArrRxCmplt = 0;
            }
        }//while(1)
}//main