Debug Serial para programa resetar o buffer quando houver tamanhos errados na mensagem
Dependencies: pulga-lorawan-drv PingPong-P2P-ClickButtonToWork-SX1272
main.cpp@7:37dc9ce68914, 2021-03-19 (annotated)
- Committer:
- pancotinho
- Date:
- Fri Mar 19 20:26:32 2021 +0000
- Revision:
- 7:37dc9ce68914
- Parent:
- 6:c305f2aa79a4
- Child:
- 8:856f7a8cc20c
changes for serial comm
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
cdupaty | 0:9859cc8476f2 | 1 | #include "mbed.h" |
pancotinho | 7:37dc9ce68914 | 2 | #include "serial.h" |
pancotinho | 7:37dc9ce68914 | 3 | #include "lora.h" |
cdupaty | 0:9859cc8476f2 | 4 | |
cdupaty | 2:4eef0eca4d26 | 5 | /////////////////////////////////////// |
cdupaty | 2:4eef0eca4d26 | 6 | // Globals variables |
cdupaty | 2:4eef0eca4d26 | 7 | /////////////////////////////////////// |
marcoantonioara | 3:cbe3f441353e | 8 | |
pancotinho | 7:37dc9ce68914 | 9 | //declaracoes gerais |
pancotinho | 7:37dc9ce68914 | 10 | |
marcoantonioara | 3:cbe3f441353e | 11 | InterruptIn dio0(P0_12); |
marcoantonioara | 3:cbe3f441353e | 12 | DigitalIn button1(P1_11); |
marcoantonioara | 3:cbe3f441353e | 13 | |
marcoantonioara | 3:cbe3f441353e | 14 | EventQueue queue; |
marcoantonioara | 3:cbe3f441353e | 15 | |
pancotinho | 7:37dc9ce68914 | 16 | void serial_post_to_queue(void); |
pancotinho | 7:37dc9ce68914 | 17 | |
marcoantonioara | 3:cbe3f441353e | 18 | |
pancotinho | 7:37dc9ce68914 | 19 | void serial_rx(){ |
pancotinho | 7:37dc9ce68914 | 20 | if(pc.readable()){ |
pancotinho | 7:37dc9ce68914 | 21 | pc.printf("rx: %c\n", pc.getc()); |
pancotinho | 7:37dc9ce68914 | 22 | } |
pancotinho | 7:37dc9ce68914 | 23 | pc.attach(&serial_post_to_queue, RawSerial::RxIrq); |
pancotinho | 7:37dc9ce68914 | 24 | return; |
pancotinho | 7:37dc9ce68914 | 25 | } |
pancotinho | 7:37dc9ce68914 | 26 | |
pancotinho | 7:37dc9ce68914 | 27 | void serial_post_to_queue(void){ |
pancotinho | 7:37dc9ce68914 | 28 | //disable serial rx interrupt |
pancotinho | 7:37dc9ce68914 | 29 | pc.attach(NULL, RawSerial::RxIrq); |
pancotinho | 7:37dc9ce68914 | 30 | //enqueue the serial rx reception as a normal task |
pancotinho | 7:37dc9ce68914 | 31 | queue.call(SerialRx); |
pancotinho | 7:37dc9ce68914 | 32 | return; |
pancotinho | 7:37dc9ce68914 | 33 | } |
marcoantonioara | 3:cbe3f441353e | 34 | |
marcoantonioara | 3:cbe3f441353e | 35 | |
marcoantonioara | 5:ef21a65a3450 | 36 | int main(void) { |
pancotinho | 7:37dc9ce68914 | 37 | |
marcoantonioara | 5:ef21a65a3450 | 38 | /////////////////////////////////////// |
marcoantonioara | 5:ef21a65a3450 | 39 | // Configuration |
marcoantonioara | 5:ef21a65a3450 | 40 | /////////////////////////////////////// |
pancotinho | 7:37dc9ce68914 | 41 | |
marcoantonioara | 3:cbe3f441353e | 42 | |
pancotinho | 7:37dc9ce68914 | 43 | pc.printf("init\n"); |
pancotinho | 7:37dc9ce68914 | 44 | pc.baud(9600); |
pancotinho | 7:37dc9ce68914 | 45 | pc.printf("config9600\n"); |
pancotinho | 7:37dc9ce68914 | 46 | //enable serial rx interrupt |
pancotinho | 7:37dc9ce68914 | 47 | pc.attach(&serial_post_to_queue, RawSerial::RxIrq); |
marcoantonioara | 5:ef21a65a3450 | 48 | |
marcoantonioara | 5:ef21a65a3450 | 49 | //____Configuration Lora |
marcoantonioara | 3:cbe3f441353e | 50 | Thread eventThread; |
marcoantonioara | 3:cbe3f441353e | 51 | eventThread.start(callback(&queue, &EventQueue::dispatch_forever)); |
marcoantonioara | 3:cbe3f441353e | 52 | |
marcoantonioara | 5:ef21a65a3450 | 53 | dio0.rise(queue.event(&print_packet)); //configure interrupt rotine ro recieve packet |
marcoantonioara | 3:cbe3f441353e | 54 | setup(); //configura sx1272 |
marcoantonioara | 5:ef21a65a3450 | 55 | |
marcoantonioara | 5:ef21a65a3450 | 56 | |
marcoantonioara | 3:cbe3f441353e | 57 | sx1272.writeRegister(REG_OP_MODE,133); //leitura continua |
marcoantonioara | 5:ef21a65a3450 | 58 | sx1272.writeRegister(REG_IRQ_FLAGS_MASK,187);//configure interrupt mask to interrupt only when a packet receive and packet envied |
afzalsamira | 6:c305f2aa79a4 | 59 | |
marcoantonioara | 3:cbe3f441353e | 60 | |
marcoantonioara | 5:ef21a65a3450 | 61 | |
marcoantonioara | 5:ef21a65a3450 | 62 | |
marcoantonioara | 5:ef21a65a3450 | 63 | while(1){ |
afzalsamira | 6:c305f2aa79a4 | 64 | |
marcoantonioara | 5:ef21a65a3450 | 65 | if (!button1){ |
pancotinho | 7:37dc9ce68914 | 66 | |
afzalsamira | 6:c305f2aa79a4 | 67 | printf("SENDING PING\n"); |
pancotinho | 7:37dc9ce68914 | 68 | send_data(PING); |
marcoantonioara | 5:ef21a65a3450 | 69 | } |
marcoantonioara | 5:ef21a65a3450 | 70 | |
marcoantonioara | 3:cbe3f441353e | 71 | wait_ms(50); |
marcoantonioara | 3:cbe3f441353e | 72 | } |
marcoantonioara | 3:cbe3f441353e | 73 | |
marcoantonioara | 3:cbe3f441353e | 74 | } |