ricardo guillen
/
C3picasso
canbus rpm test
main.cpp
- Committer:
- guigra
- Date:
- 2010-09-29
- Revision:
- 0:2e70b895129c
File content as of revision 0:2e70b895129c:
#include "mbed.h" #include "TextLCD.h" //leemos el can a 500 kb/s y lo enviamos por el usb DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); Serial pc(USBTX, USBRX); // tx, rx CAN can2(p30,p29); CANMessage can_MsgRx; TextLCD lcd(p18,p19,p20,p17,p16,p15,p14); static char error=0; int main() { char buffer[20]; int engine_data; //float lcd.locate(0,0); lcd.printf("C3 PICASSO v2"); lcd.locate(0,1); lcd.printf("RICARDO GUILLEN"); wait(3); lcd.cls(); //inicializamos el can a 500kb/s can2.frequency(500000); //bulce principal while (1) { if (can2.read(can_MsgRx)) { switch(can_MsgRx.id){ case 0x208: //engine_data = ((can_MsgRx.data[0]*256) + can_MsgRx.data[1])/4; // sprintf(buffer,"%d rpm ",(int) engine_data); // sprintf(buffer,"%d rpm ",can_MsgRx.id); //unsigned long a=array[0]|(array[1]<<8); /* engine_data=(can_MsgRx.data[0]|(can_MsgRx.data[1]<<8)/10); lcd.locate(0,0); lcd.printf(buffer); lcd.printf("%d rpm %x%x ",(int) engine_data,can_MsgRx.data[0],can_MsgRx.data[1]); */ //(s[ 0 ] << 8) +s[ 1 ] /* engine_data=(can_MsgRx.data[0]<<8 + (can_MsgRx.data[1])/10); sprintf(buffer,"0000%x%x",can_MsgRx.data[0],can_MsgRx.data[1]); lcd.locate(0,0); // lcd.printf(buffer); lcd.printf("%d rpm %x%x %s",(int) engine_data,can_MsgRx.data[0],can_MsgRx.data[1],buffer);*/ unsigned char b[4]; b[0]=0x00; b[1]=0x00; b[2]=can_MsgRx.data[0]; b[3]=can_MsgRx.data[1]; int valor= (b[0] << 24) + ((b[1] & 0xFF) << 16)+ ((b[2] & 0xFF) << 8)+ (b[3] & 0xFF); lcd.locate(0,0); // lcd.printf(buffer); lcd.printf("%d rpm ", (valor/10)); break; //default: //lcd.locate(0,1); //lcd.printf("default:%x",can_MsgRx.id); } // pc.printf("id: 0x%x data:", can_MsgRx.id); pc.printf("%x,",can_MsgRx.id); for (char i=0; i<can_MsgRx.len; i++) { if(i==can_MsgRx.len-1){ pc.printf("%x", can_MsgRx.data[i]); }else{ pc.printf("%x,", can_MsgRx.data[i]); } } pc.printf("\n\r"); // mensaje ok, // led3 = !led3; led3=1; led4=0; }else{ if(error==254){ // pc.printf("Errores: %x last: %x \n\r",error, can2.rderror()); error=0; } error++; // led4 = !led4; led4=1; led3=0; } } }