teste de publish

Dependencies:   DS1820 HighSpeedAnalogIn devices mbed

Committer:
brunofgc
Date:
Fri Jun 08 22:14:21 2018 +0000
Revision:
38:07d3907b74e5
Parent:
34:348991c54ff3
teste de publish para compilar no mbed-cli

Who changed what in which revision?

UserRevisionLine numberNew contents of line
brunofgc 0:1c0a769988ee 1 #include "serialModem.h"
brunofgc 0:1c0a769988ee 2 #include "modem.h"
brunofgc 0:1c0a769988ee 3
brunofgc 0:1c0a769988ee 4 //extern Serial pc(USBTX, USBRX); //Instancia de recurso Serial uart pc
brunofgc 0:1c0a769988ee 5 //extern Serial modem(P0_10, P0_11); //Instancia de recurso Serial uart Modem
brunofgc 0:1c0a769988ee 6
brunofgc 0:1c0a769988ee 7
brunofgc 0:1c0a769988ee 8
brunofgc 0:1c0a769988ee 9 osTimerId serialModem::timer_pacote;
brunofgc 0:1c0a769988ee 10 bool serialModem::startTimer_pacote;
brunofgc 4:13ff9c81dc10 11 bool serialModem::processarPacote;
brunofgc 0:1c0a769988ee 12
brunofgc 0:1c0a769988ee 13 /*Timers*/
brunofgc 0:1c0a769988ee 14 //osTimerDef( "nomeDoTimer", "Função chamada pelo timer when match")
brunofgc 0:1c0a769988ee 15 osTimerDef(timerProcessaPacoteModem,serialModem::chamaProcessaPacote);
brunofgc 0:1c0a769988ee 16 /*Timers*/
brunofgc 0:1c0a769988ee 17
brunofgc 0:1c0a769988ee 18 void serialModem::chamaProcessaPacote(void const *args){
brunofgc 4:13ff9c81dc10 19 osSignalSet(idThreadProcessaPacote,0x1);
brunofgc 4:13ff9c81dc10 20 serialModem::processarPacote = true;
brunofgc 0:1c0a769988ee 21 }
brunofgc 0:1c0a769988ee 22
brunofgc 0:1c0a769988ee 23 void serialModem::configBaud(){
brunofgc 0:1c0a769988ee 24 uint32_t baud = 9600;
brunofgc 0:1c0a769988ee 25 modem.baud(baud);
brunofgc 34:348991c54ff3 26 while((!modemCom::sendToModem("ATE0\r\n",1,&modemCom::status.OK,NULL,50,1,50))&&(baud <= 230400)){
brunofgc 0:1c0a769988ee 27 baud += 9600;
brunofgc 0:1c0a769988ee 28 pc.printf("\r\n Tentando %lu.\r\n",baud);
brunofgc 0:1c0a769988ee 29 modem.baud(baud);
brunofgc 0:1c0a769988ee 30 }
brunofgc 0:1c0a769988ee 31 if(baud<=230400){
brunofgc 7:ae9c47f62946 32 pc.printf("\r\n Conectado a %lu baud/s.\r\n",baud);
brunofgc 0:1c0a769988ee 33 }else{
brunofgc 0:1c0a769988ee 34 pc.printf("Modem inacessivel.\r\n");
brunofgc 0:1c0a769988ee 35 }
brunofgc 0:1c0a769988ee 36 }
brunofgc 0:1c0a769988ee 37
brunofgc 0:1c0a769988ee 38 void serialModem::serial_init(){
brunofgc 0:1c0a769988ee 39 //Instnciando o timer de processamento de pacotes entrantes na serial PC
brunofgc 0:1c0a769988ee 40 //Criando timer_pacote
brunofgc 0:1c0a769988ee 41 serialModem::timer_pacote = osTimerCreate(osTimer(timerProcessaPacoteModem),osTimerOnce,NULL);
brunofgc 0:1c0a769988ee 42 //Associando função a ISR da serial PC
brunofgc 0:1c0a769988ee 43 modem.attach(&serialModem::isr_serial); //Setando uma função para ISR Serial 2 (Serial modem)
brunofgc 0:1c0a769988ee 44 }
brunofgc 0:1c0a769988ee 45 void serialModem::isr_serial(){
brunofgc 0:1c0a769988ee 46 uint32_t RBR = LPC_UART2->RBR; //Reset RBR interrupt flag e captura o caractere entrante
brunofgc 0:1c0a769988ee 47 bufModem.putc(RBR);
brunofgc 0:1c0a769988ee 48 //pc.putc(RBR);
brunofgc 0:1c0a769988ee 49 serialModem::startTimer_pacote=true; //Agenda o inicio do timer na thread de manipulação de timers
brunofgc 0:1c0a769988ee 50 osSignalSet(idThreadTimers, 0x1); //Envia sinal para a thread de manipulação dos timers para ativar os timers agendados
brunofgc 0:1c0a769988ee 51 //timeOutModem.attach(&chamaProcessaPacotePeloTimeOut, 0.1);
brunofgc 0:1c0a769988ee 52 }