20190816

Dependencies:   mbed

Committer:
VASKO
Date:
Fri Aug 02 18:32:47 2019 +0000
Revision:
1:e5810b8734ec
Parent:
0:5152e3f9df72
Child:
2:56a194afd255
jkljkljkl

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 0:5152e3f9df72 6 #define LeadingEcho 1 //определить "1" для превращения программы
VASKO 0:5152e3f9df72 7 //в эхо + вывод массива
VASKO 0:5152e3f9df72 8 #define RxInterruptEnable 1 //определить "0" для отслеживания приянятия символа поллингом
VASKO 0:5152e3f9df72 9
VASKO 0:5152e3f9df72 10 //отправка массива по приему символа
VASKO 0:5152e3f9df72 11 Serial pc(USBTX,USBRX);
VASKO 0:5152e3f9df72 12 //uint8_t a = pc.getc();
VASKO 0:5152e3f9df72 13 DigitalOut myled(LED1);
VASKO 0:5152e3f9df72 14
VASKO 0:5152e3f9df72 15 int nCharTx = 0;
VASKO 0:5152e3f9df72 16
VASKO 0:5152e3f9df72 17 uint8_t ArrTx[ArrTxSize] = {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4b,0x4c,0x4d,0x4e,0x20};
VASKO 0:5152e3f9df72 18 uint8_t ArrRx[ArrRxSize];
VASKO 0:5152e3f9df72 19
VASKO 0:5152e3f9df72 20 void IntrTx() {
VASKO 0:5152e3f9df72 21 nCharTx++;
VASKO 0:5152e3f9df72 22 if (nCharTx < ArrTxSize ){
VASKO 0:5152e3f9df72 23 pc.putc(ArrTx[nCharTx]);
VASKO 0:5152e3f9df72 24 }
VASKO 0:5152e3f9df72 25 else{
VASKO 0:5152e3f9df72 26 pc.attach(NULL, Serial::TxIrq);
VASKO 0:5152e3f9df72 27 }
VASKO 0:5152e3f9df72 28 }
VASKO 0:5152e3f9df72 29
VASKO 0:5152e3f9df72 30 void IntrRx() {
VASKO 0:5152e3f9df72 31
VASKO 0:5152e3f9df72 32 #ifdef LeadingEcho
VASKO 0:5152e3f9df72 33 #if LeadingEcho == 1
VASKO 0:5152e3f9df72 34 uint8_t received_char;
VASKO 0:5152e3f9df72 35 received_char = pc.getc();
VASKO 0:5152e3f9df72 36 pc.putc(received_char); //раскомментировать эту строку для превращения программы
VASKO 0:5152e3f9df72 37 //в эхо + вывод массива
VASKO 0:5152e3f9df72 38 nCharTx = -1; //установить в -1 для превращения программы
VASKO 0:5152e3f9df72 39 //в эхо + вывод массива
VASKO 0:5152e3f9df72 40 #elif LeadingEcho == 0
VASKO 0:5152e3f9df72 41 (void) pc.getc();
VASKO 0:5152e3f9df72 42 nCharTx = 0; //установить в -1 для превращения программы
VASKO 0:5152e3f9df72 43 //в эхо + вывод массива
VASKO 0:5152e3f9df72 44 pc.putc(ArrTx[nCharTx]);//закомментировать эту строку для превращения программы
VASKO 0:5152e3f9df72 45 //в эхо + вывод массива (стилистически правльно)
VASKO 0:5152e3f9df72 46 #endif
VASKO 0:5152e3f9df72 47 #else
VASKO 0:5152e3f9df72 48 #error LeadingEcho not defined !!!!!!!
VASKO 0:5152e3f9df72 49 #endif
VASKO 0:5152e3f9df72 50 pc.attach(&IntrTx, Serial::TxIrq);
VASKO 0:5152e3f9df72 51 }
VASKO 0:5152e3f9df72 52
VASKO 0:5152e3f9df72 53 int main() {
VASKO 0:5152e3f9df72 54 #ifdef RxInterruptEnable
VASKO 0:5152e3f9df72 55 #if RxInterruptEnable == 1
VASKO 0:5152e3f9df72 56 pc.attach(&IntrRx, Serial::RxIrq);
VASKO 0:5152e3f9df72 57 #endif
VASKO 0:5152e3f9df72 58 #else
VASKO 0:5152e3f9df72 59 #error RxInterruptEnable not defined !!!!!!!
VASKO 0:5152e3f9df72 60 #endif
VASKO 0:5152e3f9df72 61 pc.attach(NULL, Serial::TxIrq);//я УПЁРТЫЙ дебил
VASKO 0:5152e3f9df72 62
VASKO 0:5152e3f9df72 63
VASKO 0:5152e3f9df72 64 //Я дебил,потому что хотел выполнить действия,которые требуются
VASKO 1:e5810b8734ec 65 //постоянно,один раз и именно здесь. jhkhkjh
VASKO 0:5152e3f9df72 66
VASKO 0:5152e3f9df72 67 while(1) {
VASKO 0:5152e3f9df72 68 #ifdef RxInterruptEnable
VASKO 0:5152e3f9df72 69 #if RxInterruptEnable == 0
VASKO 0:5152e3f9df72 70 (void) pc.getc();
VASKO 0:5152e3f9df72 71 nCharTx = 0;
VASKO 0:5152e3f9df72 72 pc.putc(ArrTx[nCharTx]);
VASKO 0:5152e3f9df72 73 pc.attach(&IntrTx, Serial::TxIrq);
VASKO 0:5152e3f9df72 74 #endif
VASKO 0:5152e3f9df72 75 #else
VASKO 0:5152e3f9df72 76 #error RxInterruptEnable not defined !!!!!!!
VASKO 0:5152e3f9df72 77 #endif
VASKO 0:5152e3f9df72 78 }
VASKO 0:5152e3f9df72 79 }