Dual CANbus monitor and instrumentation cluster supporting ILI9341 display controller
Dependencies: SPI_TFTx2_ILI9341 TOUCH_TFTx2_ILI9341 TFT_fonts mbed
Fork of CANary by
Diff: main.cpp
- Revision:
- 182:10017d74de67
- Parent:
- 181:396fdcceefd2
- Child:
- 183:a1fba6f76e69
--- a/main.cpp Tue Mar 25 19:57:08 2014 +0000 +++ b/main.cpp Sun Mar 30 03:00:14 2014 +0000 @@ -9,10 +9,9 @@ // * Add tire pressure cal (40psi for me = FR 38, RR 38.2, FL 37.8, RL 38 - maybe 2psi error on my tire gauge?) // * Add on screen messages for heater on, etc, and use refresh feature above to clear in x seconds // * Be more efficient with write buffer (use msgLen instead of always storing 8 bytes) - +// * Fix wrong whpg bug when charging away from home (no clearing of trip[3]) -// rev181 -// Added grid to whpg displays +// rev182 #include "mbed.h" #include "CAN.h" @@ -23,7 +22,7 @@ #include "displayModes.h" #include "TOUCH_TFTx2.h" -char revStr[7] = "181"; +char revStr[7] = "182"; unsigned long maxTarget = 1000; FATFS USBdrive; LocalFileSystem local("local"); @@ -920,21 +919,32 @@ if(whpg[i]>maxWhpg){ maxWhpg=whpg[i]; minWh=wh[i]; + if(debugMode){ + sprintf(sTemp,"maxWhpg=%3.1f;minWh=%3.1f\n", maxWhpg,minWh); + printMsg(sTemp); // revision + } } if(minWh>0){ if((whpg[i]==0)&&(whpg[i-1]>0)){ //Remember the offset at the end of the measured range whOff = minWh+maxWhpg-wh[i]; - } + if(debugMode){ + sprintf(sTemp,"whOff=%3.1f\n", whOff); + printMsg(sTemp); // revision + } + } wh[i] *= 4; - if(whOff>0){ // Apply offset to all level above measured range - wh[i] += wh[i]+whOff; + if(whpg[i]==0){ // Apply offset to all levels outside measured range + wh[i] += wh[i]; + wh[i] += whOff; }else{ // Apply adjustment to measured range - wh[i] += minWh+maxWhpg-whpg[i]; + wh[i] += minWh; + wh[i] += maxWhpg; + wh[i] -= (float) whpg[i]; } - wh[i] /=5; + wh[i] /= 5; } } - for(i=1;i<300;i++){ // clear array + for(i=0;i<300;i++){ // clear array whpg[i]=0; } } @@ -1062,6 +1072,9 @@ miles_trip[1]=0; kWh_trip[1]=0; CCkWh_trip[1]=0; + //if((cgids>0)&&(cgids<300)){ + // whpg[cgids]=0; + //} } motorRPM=0;