Alfredo Acerbi
/
APS2_final
main.cpp
- Committer:
- AlfredoAcerbi
- Date:
- 2020-06-09
- Revision:
- 0:caf61dbcde48
File content as of revision 0:caf61dbcde48:
//inclui as bibliotecas #include "mbed.h" #include "TextLCD.h" TextLCD lcd(D8, D9, D4, D5, D6, D7); //declara uso do display lcd Serial pc(USBTX, USBRX); //declara serial CAN can1(PB_8, PB_9); //declara CAN AnalogIn EX(A2); //declara entrada eixo x do joystick AnalogIn EY(A3); //declara entrada eixo y do joystick static char info[5] = {0x55, 0x54, 0x53, 0x52, 0x51}; //vetor para as 5 msgs int main() { //cria mensagens que serão utilizadas CANMessage cima(5, &info[0], 8, CANData, CANStandard); CANMessage baixo(5, &info[1], 8, CANData, CANStandard); CANMessage esquerda(5, &info[2], 8, CANData, CANStandard); CANMessage direita(5, &info[3], 8, CANData, CANStandard); CANMessage recebida(5, &info[4], 8, CANData, CANStandard); pc.printf("Ola!\n"); int x; //cria variavel inteira x int y; ////cria variavel inteira x while(1) { x = EX.read()*1000; //atribui à variável x o valor da leitura no pino vezes 1000 y = EY.read()*1000; //atribui à variável y o valor da leitura no pino vezes 1000 //escreve as mensagens certas para as condições de valor do joystick if (x<100) { if(can1.write(esquerda)) { pc.printf("Esquerda"); } else { pc.printf("mensagem NAO enviada\n"); } } if (x>900) { if(can1.write(direita)) { pc.printf("Direita"); } else { pc.printf("mensagem NAO enviada\n"); } } if (y<100) { if(can1.write(baixo)) { pc.printf("Baixo"); } else { pc.printf("mensagem NAO enviada\n"); } } if (y>900) { if(can1.write(cima)) { pc.printf("Cima"); } else { pc.printf("mensagem NAO enviada\n"); } } //faz a comparação da msg escrevida com as msgs criadas. quando for igual, ou seja, qndo o valor de uma msg for igual ao de cima, baixo, esq e dir, printa no LCD if (can1.read(recebida)) { pc.printf("mensagem recebida %x\n", recebida.data[0]); } if (recebida.data[0] == 0x55) { lcd.locate(0,0); lcd.printf("Cima "); } if (recebida.data[0] == 0x54) { lcd.locate(0,0); lcd.printf("Baixo "); } if (recebida.data[0] == 0x53) { lcd.locate(0,0); lcd.printf("Esquerda "); } if (recebida.data[0] == 0x52) { lcd.locate(0,0); lcd.printf("Direita "); } recebida.data[0] = 0; //limpa as variaveis } }