vasko ozo
/
TxRxService
20190816
main.cpp@1:e5810b8734ec, 2019-08-02 (annotated)
- 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?
User | Revision | Line number | New 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 | } |