20190816

Dependencies:   mbed

Committer:
VASKO
Date:
Sat Aug 03 12:24:10 2019 +0000
Revision:
3:7cdb20aac969
Parent:
2:56a194afd255
Child:
4:d461cadeb702
ArrTx is copied from ArrRx by func (with default values) working with pointers.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
VASKO 0:5152e3f9df72 1 #include "mbed.h"
VASKO 0:5152e3f9df72 2
VASKO 0:5152e3f9df72 3 #define ArrTxSize 16
VASKO 0:5152e3f9df72 4 #define ArrRxSize 16
VASKO 0:5152e3f9df72 5
VASKO 2:56a194afd255 6 Serial pc(USBTX,USBRX);
VASKO 0:5152e3f9df72 7
VASKO 0:5152e3f9df72 8 DigitalOut myled(LED1);
VASKO 0:5152e3f9df72 9
VASKO 0:5152e3f9df72 10 int nCharTx = 0;
VASKO 2:56a194afd255 11 int nCharRx = 0;
VASKO 0:5152e3f9df72 12
VASKO 2:56a194afd255 13 uint8_t ArrTx[ArrTxSize] = {0x20,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4b,0x4c,0x4d,0x4e,0x4f};
VASKO 2:56a194afd255 14 uint8_t ArrRx[ArrRxSize] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
VASKO 0:5152e3f9df72 15
VASKO 0:5152e3f9df72 16 void IntrTx() {
VASKO 0:5152e3f9df72 17 nCharTx++;
VASKO 0:5152e3f9df72 18 if (nCharTx < ArrTxSize ){
VASKO 0:5152e3f9df72 19 pc.putc(ArrTx[nCharTx]);
VASKO 0:5152e3f9df72 20 }
VASKO 0:5152e3f9df72 21 else{
VASKO 2:56a194afd255 22 pc.attach(NULL, Serial::TxIrq);
VASKO 2:56a194afd255 23 myled=0;
VASKO 0:5152e3f9df72 24 }
VASKO 0:5152e3f9df72 25 }
VASKO 0:5152e3f9df72 26
VASKO 3:7cdb20aac969 27 void CopyUint8(uint8_t *src = &ArrRx[0], uint8_t *dst = &ArrTx[0], int qty = ArrTxSize){
VASKO 3:7cdb20aac969 28 for ( ; qty > 0; src++,dst++,qty-- ) *dst = *src;
VASKO 3:7cdb20aac969 29 }
VASKO 3:7cdb20aac969 30
VASKO 2:56a194afd255 31 void IntrRx() {
VASKO 2:56a194afd255 32 ArrRx[nCharRx++] = pc.getc();
VASKO 2:56a194afd255 33 if (nCharRx >= ArrRxSize ) {
VASKO 3:7cdb20aac969 34 CopyUint8();
VASKO 2:56a194afd255 35 nCharTx = 0;
VASKO 2:56a194afd255 36 pc.putc(ArrTx[nCharTx]);
VASKO 2:56a194afd255 37 pc.attach(&IntrTx, Serial::TxIrq);
VASKO 2:56a194afd255 38 nCharRx = 0;
VASKO 2:56a194afd255 39 myled=1;
VASKO 2:56a194afd255 40 }
VASKO 3:7cdb20aac969 41
VASKO 0:5152e3f9df72 42 }
VASKO 3:7cdb20aac969 43
VASKO 0:5152e3f9df72 44
VASKO 0:5152e3f9df72 45 int main() {
VASKO 0:5152e3f9df72 46 pc.attach(&IntrRx, Serial::RxIrq);
VASKO 0:5152e3f9df72 47 pc.attach(NULL, Serial::TxIrq);//я УПЁРТЫЙ дебил
VASKO 0:5152e3f9df72 48
VASKO 2:56a194afd255 49 //Exige Monumentum
VASKO 2:56a194afd255 50 //Я дебил,потому что хотел выполнить действия,которые
VASKO 2:56a194afd255 51 //требуются постоянно,один раз и именно здесь.
VASKO 0:5152e3f9df72 52
VASKO 0:5152e3f9df72 53 while(1) {
VASKO 0:5152e3f9df72 54 }
VASKO 0:5152e3f9df72 55 }