Debug Serial para programa resetar o buffer quando houver tamanhos errados na mensagem

Dependencies:   pulga-lorawan-drv PingPong-P2P-ClickButtonToWork-SX1272

Committer:
pancotinho
Date:
Wed Mar 31 13:04:22 2021 +0000
Revision:
9:cf555a570349
Parent:
8:856f7a8cc20c
Child:
10:f6ff8ec221ec
serial+p2p

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pancotinho 9:cf555a570349 1
cdupaty 0:9859cc8476f2 2 #include "mbed.h"
pancotinho 7:37dc9ce68914 3 #include "serial.h"
pancotinho 7:37dc9ce68914 4 #include "lora.h"
cdupaty 0:9859cc8476f2 5
pancotinho 9:cf555a570349 6
pancotinho 9:cf555a570349 7
cdupaty 2:4eef0eca4d26 8 ///////////////////////////////////////
cdupaty 2:4eef0eca4d26 9 // Globals variables
cdupaty 2:4eef0eca4d26 10 ///////////////////////////////////////
marcoantonioara 3:cbe3f441353e 11
pancotinho 7:37dc9ce68914 12 //declaracoes gerais
pancotinho 7:37dc9ce68914 13
marcoantonioara 3:cbe3f441353e 14 InterruptIn dio0(P0_12);
marcoantonioara 3:cbe3f441353e 15 DigitalIn button1(P1_11);
marcoantonioara 3:cbe3f441353e 16
marcoantonioara 3:cbe3f441353e 17 EventQueue queue;
marcoantonioara 3:cbe3f441353e 18
pancotinho 7:37dc9ce68914 19 void serial_post_to_queue(void);
pancotinho 7:37dc9ce68914 20
marcoantonioara 3:cbe3f441353e 21
pancotinho 7:37dc9ce68914 22 void serial_rx(){
pancotinho 7:37dc9ce68914 23 if(pc.readable()){
pancotinho 7:37dc9ce68914 24 pc.printf("rx: %c\n", pc.getc());
pancotinho 7:37dc9ce68914 25 }
pancotinho 7:37dc9ce68914 26 pc.attach(&serial_post_to_queue, RawSerial::RxIrq);
pancotinho 7:37dc9ce68914 27 return;
pancotinho 7:37dc9ce68914 28 }
pancotinho 7:37dc9ce68914 29
pancotinho 7:37dc9ce68914 30 void serial_post_to_queue(void){
pancotinho 7:37dc9ce68914 31 //disable serial rx interrupt
pancotinho 7:37dc9ce68914 32 pc.attach(NULL, RawSerial::RxIrq);
pancotinho 7:37dc9ce68914 33 //enqueue the serial rx reception as a normal task
pancotinho 7:37dc9ce68914 34 queue.call(SerialRx);
pancotinho 8:856f7a8cc20c 35 //queue.event(&SerialRx);
pancotinho 7:37dc9ce68914 36 return;
pancotinho 7:37dc9ce68914 37 }
marcoantonioara 3:cbe3f441353e 38
marcoantonioara 3:cbe3f441353e 39
marcoantonioara 5:ef21a65a3450 40 int main(void) {
pancotinho 7:37dc9ce68914 41
marcoantonioara 5:ef21a65a3450 42 ///////////////////////////////////////
marcoantonioara 5:ef21a65a3450 43 // Configuration
marcoantonioara 5:ef21a65a3450 44 ///////////////////////////////////////
pancotinho 7:37dc9ce68914 45
marcoantonioara 3:cbe3f441353e 46
pancotinho 7:37dc9ce68914 47 pc.printf("init\n");
pancotinho 7:37dc9ce68914 48 pc.baud(9600);
pancotinho 7:37dc9ce68914 49 pc.printf("config9600\n");
pancotinho 9:cf555a570349 50
pancotinho 7:37dc9ce68914 51 //enable serial rx interrupt
pancotinho 8:856f7a8cc20c 52 //pc.attach(&serial_post_to_queue, RawSerial::RxIrq);
pancotinho 9:cf555a570349 53 wait_ms(250);
pancotinho 9:cf555a570349 54
pancotinho 9:cf555a570349 55
marcoantonioara 5:ef21a65a3450 56
marcoantonioara 5:ef21a65a3450 57 //____Configuration Lora
marcoantonioara 3:cbe3f441353e 58 Thread eventThread;
marcoantonioara 3:cbe3f441353e 59 eventThread.start(callback(&queue, &EventQueue::dispatch_forever));
marcoantonioara 3:cbe3f441353e 60
marcoantonioara 5:ef21a65a3450 61 dio0.rise(queue.event(&print_packet)); //configure interrupt rotine ro recieve packet
pancotinho 8:856f7a8cc20c 62 pc.attach(&SerialRx, RawSerial::RxIrq);
marcoantonioara 3:cbe3f441353e 63 setup(); //configura sx1272
marcoantonioara 5:ef21a65a3450 64
marcoantonioara 5:ef21a65a3450 65
marcoantonioara 3:cbe3f441353e 66 sx1272.writeRegister(REG_OP_MODE,133); //leitura continua
marcoantonioara 5:ef21a65a3450 67 sx1272.writeRegister(REG_IRQ_FLAGS_MASK,187);//configure interrupt mask to interrupt only when a packet receive and packet envied
afzalsamira 6:c305f2aa79a4 68
marcoantonioara 3:cbe3f441353e 69
marcoantonioara 5:ef21a65a3450 70
marcoantonioara 5:ef21a65a3450 71
marcoantonioara 5:ef21a65a3450 72 while(1){
afzalsamira 6:c305f2aa79a4 73
marcoantonioara 5:ef21a65a3450 74 if (!button1){
pancotinho 7:37dc9ce68914 75
pancotinho 8:856f7a8cc20c 76 pc.printf("SENDING PING\n");
pancotinho 7:37dc9ce68914 77 send_data(PING);
marcoantonioara 5:ef21a65a3450 78 }
marcoantonioara 5:ef21a65a3450 79
marcoantonioara 3:cbe3f441353e 80 wait_ms(50);
marcoantonioara 3:cbe3f441353e 81 }
marcoantonioara 3:cbe3f441353e 82
marcoantonioara 3:cbe3f441353e 83 }