vasko ozo
/
TxRxService
20190816
main.cpp
- Committer:
- VASKO
- Date:
- 2019-08-02
- Revision:
- 1:e5810b8734ec
- Parent:
- 0:5152e3f9df72
- Child:
- 2:56a194afd255
File content as of revision 1:e5810b8734ec:
#include "mbed.h" #define ArrTxSize 16 #define ArrRxSize 16 #define LeadingEcho 1 //определить "1" для превращения программы //в эхо + вывод массива #define RxInterruptEnable 1 //определить "0" для отслеживания приянятия символа поллингом //отправка массива по приему символа Serial pc(USBTX,USBRX); //uint8_t a = pc.getc(); DigitalOut myled(LED1); int nCharTx = 0; uint8_t ArrTx[ArrTxSize] = {0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4b,0x4c,0x4d,0x4e,0x20}; uint8_t ArrRx[ArrRxSize]; void IntrTx() { nCharTx++; if (nCharTx < ArrTxSize ){ pc.putc(ArrTx[nCharTx]); } else{ pc.attach(NULL, Serial::TxIrq); } } void IntrRx() { #ifdef LeadingEcho #if LeadingEcho == 1 uint8_t received_char; received_char = pc.getc(); pc.putc(received_char); //раскомментировать эту строку для превращения программы //в эхо + вывод массива nCharTx = -1; //установить в -1 для превращения программы //в эхо + вывод массива #elif LeadingEcho == 0 (void) pc.getc(); nCharTx = 0; //установить в -1 для превращения программы //в эхо + вывод массива pc.putc(ArrTx[nCharTx]);//закомментировать эту строку для превращения программы //в эхо + вывод массива (стилистически правльно) #endif #else #error LeadingEcho not defined !!!!!!! #endif pc.attach(&IntrTx, Serial::TxIrq); } int main() { #ifdef RxInterruptEnable #if RxInterruptEnable == 1 pc.attach(&IntrRx, Serial::RxIrq); #endif #else #error RxInterruptEnable not defined !!!!!!! #endif pc.attach(NULL, Serial::TxIrq);//я УПЁРТЫЙ дебил //Я дебил,потому что хотел выполнить действия,которые требуются //постоянно,один раз и именно здесь. jhkhkjh while(1) { #ifdef RxInterruptEnable #if RxInterruptEnable == 0 (void) pc.getc(); nCharTx = 0; pc.putc(ArrTx[nCharTx]); pc.attach(&IntrTx, Serial::TxIrq); #endif #else #error RxInterruptEnable not defined !!!!!!! #endif } }