versao final aps 2 - alfredo
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 //inclui as bibliotecas 00002 #include "mbed.h" 00003 #include "TextLCD.h" 00004 00005 00006 TextLCD lcd(D8, D9, D4, D5, D6, D7); //declara uso do display lcd 00007 Serial pc(USBTX, USBRX); //declara serial 00008 CAN can1(PB_8, PB_9); //declara CAN 00009 AnalogIn EX(A2); //declara entrada eixo x do joystick 00010 AnalogIn EY(A3); //declara entrada eixo y do joystick 00011 00012 static char info[5] = {0x55, 0x54, 0x53, 0x52, 0x51}; //vetor para as 5 msgs 00013 00014 int main() 00015 { 00016 //cria mensagens que serão utilizadas 00017 CANMessage cima(5, &info[0], 8, CANData, CANStandard); 00018 CANMessage baixo(5, &info[1], 8, CANData, CANStandard); 00019 CANMessage esquerda(5, &info[2], 8, CANData, CANStandard); 00020 CANMessage direita(5, &info[3], 8, CANData, CANStandard); 00021 CANMessage recebida(5, &info[4], 8, CANData, CANStandard); 00022 pc.printf("Ola!\n"); 00023 int x; //cria variavel inteira x 00024 int y; ////cria variavel inteira x 00025 00026 while(1) 00027 { 00028 x = EX.read()*1000; //atribui à variável x o valor da leitura no pino vezes 1000 00029 y = EY.read()*1000; //atribui à variável y o valor da leitura no pino vezes 1000 00030 00031 //escreve as mensagens certas para as condições de valor do joystick 00032 if (x<100) 00033 { 00034 if(can1.write(esquerda)) 00035 { 00036 pc.printf("Esquerda"); 00037 } 00038 else 00039 { 00040 pc.printf("mensagem NAO enviada\n"); 00041 } 00042 } 00043 00044 if (x>900) 00045 { 00046 if(can1.write(direita)) 00047 { 00048 pc.printf("Direita"); 00049 } 00050 else 00051 { 00052 pc.printf("mensagem NAO enviada\n"); 00053 } 00054 } 00055 00056 if (y<100) 00057 { 00058 if(can1.write(baixo)) 00059 { 00060 pc.printf("Baixo"); 00061 } 00062 else 00063 { 00064 pc.printf("mensagem NAO enviada\n"); 00065 } 00066 } 00067 00068 if (y>900) 00069 { 00070 if(can1.write(cima)) 00071 { 00072 pc.printf("Cima"); 00073 } 00074 else 00075 { 00076 pc.printf("mensagem NAO enviada\n"); 00077 } 00078 } 00079 00080 //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 00081 00082 if (can1.read(recebida)) 00083 { 00084 pc.printf("mensagem recebida %x\n", recebida.data[0]); 00085 } 00086 00087 if (recebida.data[0] == 0x55) 00088 { 00089 lcd.locate(0,0); 00090 lcd.printf("Cima "); 00091 } 00092 00093 if (recebida.data[0] == 0x54) 00094 { 00095 lcd.locate(0,0); 00096 lcd.printf("Baixo "); 00097 } 00098 00099 if (recebida.data[0] == 0x53) 00100 { 00101 lcd.locate(0,0); 00102 lcd.printf("Esquerda "); 00103 } 00104 00105 if (recebida.data[0] == 0x52) 00106 { 00107 lcd.locate(0,0); 00108 lcd.printf("Direita "); 00109 } 00110 recebida.data[0] = 0; //limpa as variaveis 00111 00112 00113 } 00114 00115 } 00116 00117
Generated on Wed Aug 31 2022 21:05:34 by
1.7.2