20190816

Dependencies:   mbed

Committer:
VASKO
Date:
Thu Aug 08 13:24:28 2019 +0000
Revision:
23:39d96e160cf1
Parent:
22:1010cb11fb14
Child:
24:fba9a58e6fbd
Rx header detection performed and added. Statistics displayed. Duplex at 115200.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
VASKO 7:7aaa14391264 1 #include "PrjDefs.h"
VASKO 0:5152e3f9df72 2
VASKO 0:5152e3f9df72 3 DigitalOut myled(LED1);
VASKO 0:5152e3f9df72 4
VASKO 19:09c21f5f0625 5 Serial dpc(USBTX,USBRX);
VASKO 19:09c21f5f0625 6
VASKO 19:09c21f5f0625 7 Ticker tickTx;
VASKO 19:09c21f5f0625 8
VASKO 23:39d96e160cf1 9 MsgType _msg;
VASKO 23:39d96e160cf1 10
VASKO 23:39d96e160cf1 11 bool tick = 0;
VASKO 23:39d96e160cf1 12 uint32_t ctr = 0; // счетчик обменов
VASKO 23:39d96e160cf1 13 uint32_t ctro = 0;
VASKO 23:39d96e160cf1 14 uint32_t Ectr = 0; // счетчик ошибок
VASKO 23:39d96e160cf1 15
VASKO 23:39d96e160cf1 16 void dpc_func(){
VASKO 23:39d96e160cf1 17 (void) dpc.getc();
VASKO 23:39d96e160cf1 18 StartTx(&_msg.cmd);
VASKO 23:39d96e160cf1 19 }
VASKO 23:39d96e160cf1 20
VASKO 19:09c21f5f0625 21 void tickIntrFunc(void){
VASKO 23:39d96e160cf1 22 tick = 1;
VASKO 19:09c21f5f0625 23 }//tickIntrFunc
VASKO 19:09c21f5f0625 24
VASKO 0:5152e3f9df72 25 int main() {
VASKO 23:39d96e160cf1 26
VASKO 23:39d96e160cf1 27 _msg.cmd=0x41;
VASKO 23:39d96e160cf1 28 _msg.pars.ui32[0]=0;
VASKO 23:39d96e160cf1 29
VASKO 11:6519744c77f9 30 TxRxServiceInit();
VASKO 23:39d96e160cf1 31 tickTx.attach(&tickIntrFunc, 1);
VASKO 23:39d96e160cf1 32 dpc.baud(115200);
VASKO 23:39d96e160cf1 33 dpc.attach(dpc_func);
VASKO 12:6f63e376c0aa 34
VASKO 2:56a194afd255 35 //Exige Monumentum
VASKO 9:dcddb19ad551 36 //Я дебил,потому что хотел выполнить действия,которые
VASKO 2:56a194afd255 37 //требуются постоянно,один раз и именно здесь.
VASKO 0:5152e3f9df72 38
VASKO 12:6f63e376c0aa 39 //Для дебилов: в mbed типы "int" и "unsigned int" имеют размер 4 байта !!!
VASKO 12:6f63e376c0aa 40
VASKO 16:459ad1bd82fd 41 //https://os.mbed.com/forum/bugs-suggestions/topic/4264/ проблема выравнивания данных
VASKO 16:459ad1bd82fd 42
VASKO 0:5152e3f9df72 43 while(1) {
VASKO 15:30e45bd5902e 44 if ( RxBuffFull == 1 ) {
VASKO 15:30e45bd5902e 45 RxBuffFull = 0;
VASKO 23:39d96e160cf1 46 if(GetCheckSum(&RxBuff.cmd) == RxBuff.cs){
VASKO 23:39d96e160cf1 47 myled = !myled;
VASKO 23:39d96e160cf1 48 ctr = RxBuff.pars.ui32[0] + 1;
VASKO 23:39d96e160cf1 49 if(tick){
VASKO 23:39d96e160cf1 50 tick = 0;
VASKO 23:39d96e160cf1 51 dpc.printf("ctr = %d, diff = %d, Ectr = %d\n\r", ctr, ctr - ctro, Ectr);
VASKO 23:39d96e160cf1 52 ctro = ctr;
VASKO 23:39d96e160cf1 53 }
VASKO 23:39d96e160cf1 54 }else Ectr++;
VASKO 23:39d96e160cf1 55 _msg.pars.ui32[0] = ctr;
VASKO 23:39d96e160cf1 56 StartTx(&_msg.cmd);
VASKO 10:f7a320faef76 57 }
VASKO 8:cad966c09853 58 }//while(1)
VASKO 9:dcddb19ad551 59 }//main
VASKO 9:dcddb19ad551 60