Test1

Dependencies:   mbed

main.cpp

Committer:
VASKO
Date:
2019-08-03
Revision:
7:7aaa14391264
Parent:
6:1364a236ee22
Child:
8:cad966c09853

File content as of revision 7:7aaa14391264:

#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];

void IntrTx() {
    if ( ++pArrTx <= &ArrTx[ArrTxSize-1] ){
    pc.putc(*pArrTx);
    }
    else{
        pc.attach(NULL, Serial::TxIrq);
        myled=0;  
        }
    }

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;  
        }
    }

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