Debug Serial para programa resetar o buffer quando houver tamanhos errados na mensagem
Dependencies: pulga-lorawan-drv PingPong-P2P-ClickButtonToWork-SX1272
main.cpp@9:cf555a570349, 2021-03-31 (annotated)
- 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?
User | Revision | Line number | New 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 | } |