Konacan kod
Dependencies: BSP_DISCO_F469NIa LCD_DISCO_F469NIa SD_DISCO_F469NI mbed
main1.cpp
00001 /*#include "mbed.h" 00002 #include "functions.h" 00003 00004 LCD_DISCO_F469NI lcd; 00005 SD_DISCO_F469NI sd; 00006 Serial pc(USBTX, USBRX); 00007 CAN can(PB_5, PB_13); 00008 DigitalIn changescreen_command(D0); 00009 00010 int can_data; 00011 int RPM; 00012 extern GEAR *Gears; 00013 extern IMAGE LogoBig,LogoSmall,Branko; 00014 00015 void MainScreen(); 00016 void FirstAuxScreen(); 00017 void SecondAuxScreen(); 00018 00019 int main(){ 00020 DrawRGBImage(LogoBig,0,0); 00021 wait(0.5); 00022 lcd.SetTextColor(LCD_COLOR_WHITE); 00023 lcd.FillRect(0,0,800,480); 00024 MainScreen(); 00025 }; 00026 00027 00028 void MainScreen(){ 00029 lcd.SetTextColor(LCD_COLOR_BLACK); 00030 DrawSpeedMeter(); 00031 DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos); 00032 lcd.SetFont(&Font24); 00033 lcd.DisplayStringAt(30,170,(uint8_t*)"Oil Temp",LEFT_MODE); 00034 lcd.DisplayStringAt(30,320,(uint8_t*)"Water Temp",LEFT_MODE); 00035 lcd.DisplayStringAt(584,170,(uint8_t*)"TPS",LEFT_MODE); 00036 lcd.SetTextColor(LCD_COLOR_DARKRED); 00037 lcd.FillRect(560,340,230,68); 00038 lcd.SetBackColor(LCD_COLOR_DARKRED); 00039 PrintString("BRAKE",50,575,350,LCD_COLOR_BLACK); 00040 lcd.SetBackColor(LCD_COLOR_WHITE); 00041 00042 int Vin,V0=0,OilTemp,OilTemp0=0,WaterTemp,WaterTemp0=0,TPS,TPS0=0,Brake,Brake0=0,Gear,Gear0; 00043 00044 CANMessage msg; 00045 00046 //inicijalne vrednosti prikazane na ekranu 00047 PrintChar(Gears[0],GearXPos,GearYPos,LCD_COLOR_BLACK); 00048 ChangeNumber(0,111,100,OilTempXPos,OilTempYPos); 00049 ChangeNumber(0,111,100,WaterTempXPos,WaterTempYPos); 00050 ChangeNumber(0,111,100,TPSXPos,TPSYPos); 00051 BrakeSignal(0,1); 00052 wait(1); 00053 while(changescreen_command.read()==0){ 00054 if(can.read(msg)){ 00055 can_data=msg.data[0]; 00056 lcd.SetTextColor(LCD_COLOR_BLACK); 00057 if (msg.id==SPEED_ID){ 00058 Vin=(int)can_data; 00059 UpdateSpeedMeter(V0,Vin-V0); 00060 V0=Vin; 00061 }else if (msg.id==GEAR_ID){ 00062 Gear=can_data; 00063 if(Gear!=Gear0){ 00064 Gear=can_data; 00065 printf("%d\n",Gear); 00066 PrintChar(Gears[Gear],GearXPos,GearYPos,LCD_COLOR_BLACK); 00067 Gear0=Gear; 00068 }; 00069 }else if (msg.id==OIL_TEMP_ID){ 00070 OilTemp=can_data; 00071 ChangeNumber(OilTemp,OilTemp0,100,OilTempXPos,OilTempYPos); 00072 OilTemp0=OilTemp; 00073 }else if (msg.id==WATER_TEMP_ID){ 00074 WaterTemp=can_data; 00075 ChangeNumber(WaterTemp,WaterTemp0,100,WaterTempXPos,WaterTempYPos); 00076 WaterTemp0=WaterTemp; 00077 }else if (msg.id==TPS_ID){ 00078 TPS=can_data; 00079 ChangeNumber(TPS,TPS0,100,TPSXPos,TPSYPos); 00080 TPS0=TPS; 00081 }else if (msg.id==BRAKE_ID){ 00082 Brake=can_data; 00083 BrakeSignal(Brake,Brake0); 00084 Brake0=Brake; 00085 }; 00086 }; 00087 }; 00088 lcd.SetTextColor(LCD_COLOR_WHITE); 00089 lcd.FillRect(0,0,800,480); 00090 FirstAuxScreen(); 00091 lcd.SetTextColor(LCD_COLOR_BLACK); 00092 }; 00093 00094 void FirstAuxScreen(){ 00095 PrintString("Oil P",50,20,25,LCD_COLOR_BLACK); 00096 PrintString("MAP",50,20,100,LCD_COLOR_BLACK); 00097 PrintString("Air Temp",50,20,175,LCD_COLOR_BLACK); 00098 PrintString("Lambda",50,20,250,LCD_COLOR_BLACK); 00099 PrintString("Volts",50,20,325,LCD_COLOR_BLACK); 00100 PrintString("Crank",50,20,400,LCD_COLOR_BLACK); 00101 PrintString("kPa",50,470,25,LCD_COLOR_BLACK); 00102 PrintString("kPa",50,470,100,LCD_COLOR_BLACK); 00103 PrintString("C",50,470,175,LCD_COLOR_BLACK); 00104 PrintString("Ratio",50,470,250,LCD_COLOR_BLACK); 00105 PrintString("V",50,470,325,LCD_COLOR_BLACK); 00106 DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos); 00107 00108 uint8_t OilP,OilP0=0,MAP,MAP0=0,AirTemp,AirTemp0=0,Lambda,Lambda0=0,Volts,Volts0=0,Crank,Crank0=1; 00109 00110 CANMessage msg; 00111 00112 ChangeNumber(0,111,50,OilPXPos,OilPYPos); 00113 ChangeNumber(0,111,50,MAPXPos,MAPYPos); 00114 ChangeNumber(0,111,50,AirTempXPos,AirTempYPos); 00115 ChangeNumber(0,111,50,LambdaXPos,LambdaYPos); 00116 ChangeNumber(0,111,50,VoltsXPos,VoltsYPos); 00117 00118 while(changescreen_command.read()==0){ 00119 if(can.read(msg)){ 00120 can_data=msg.data[0]; 00121 lcd.SetTextColor(LCD_COLOR_BLACK); 00122 if (msg.id==OIL_P_ID){ 00123 OilP=can_data; 00124 ChangeNumber(OilP,OilP0,100,OilPXPos,OilPYPos); 00125 OilP0=OilP; 00126 }else if (msg.id==MAP_ID){ 00127 MAP=can_data; 00128 ChangeNumber(MAP,MAP0,100,MAPXPos,MAPYPos); 00129 MAP0=MAP; 00130 }else if (msg.id==AIR_TEMP_ID){ 00131 AirTemp=can_data; 00132 ChangeNumber(AirTemp,AirTemp0,100,AirTempXPos,AirTempYPos); 00133 AirTemp0=AirTemp; 00134 }else if (msg.id==LAMBDA_ID){ 00135 Lambda=can_data; 00136 ChangeNumber(Lambda,Lambda0,100,LambdaXPos,LambdaYPos); 00137 Lambda0=Lambda; 00138 }else if (msg.id==VOLTS_ID){ 00139 Volts=can_data; 00140 ChangeNumber(Volts,Volts0,100,VoltsXPos,VoltsYPos); 00141 Volts0=Volts; 00142 }else if (msg.id==CRANK_ID){ 00143 Crank=can_data; 00144 if(Crank!=Crank0){ 00145 if(Crank==1){ 00146 PrintString("ERROR",50,CrankXPos,CrankYPos,LCD_COLOR_RED); 00147 }else if(Crank==0){ 00148 PrintString("OK",50,CrankXPos,CrankYPos,LCD_COLOR_RED); 00149 }; 00150 }; 00151 Crank0=Crank; 00152 }; 00153 }; 00154 }; 00155 lcd.SetTextColor(LCD_COLOR_WHITE); 00156 lcd.FillRect(0,0,800,480); 00157 SecondAuxScreen(); 00158 00159 }; 00160 00161 void SecondAuxScreen(){ 00162 PrintString("LVDT Sensors",50,200,20,LCD_COLOR_BLACK); 00163 DrawRGBImage(LogoSmall,LogoSmallXPos,LogoSmallYPos); 00164 lcd.SetTextColor(LCD_COLOR_BLACK); 00165 lcd.SetFont(&Font24); 00166 lcd.DisplayStringAt(FLLVDTBarXPos+25,FLLVDTBarYPos,(uint8_t*)"FL",LEFT_MODE); 00167 lcd.DisplayStringAt(FRLVDTBarXPos+25,FRLVDTBarYPos,(uint8_t*)"FR",LEFT_MODE); 00168 lcd.DisplayStringAt(BLLVDTBarXPos+25,BLLVDTBarYPos,(uint8_t*)"BL",LEFT_MODE); 00169 lcd.DisplayStringAt(BRLVDTBarXPos+25,BRLVDTBarYPos,(uint8_t*)"BR",LEFT_MODE); 00170 00171 uint8_t FLLVDT,FLLVDT0=0,FRLVDT,FRLVDT0=0,BLLVDT,BLLVDT0=0,BRLVDT,BRLVDT0=0; 00172 00173 CANMessage msg; 00174 00175 ChangeNumber(0,111,100,FLLVDTXPos,FLLVDTYPos); 00176 ChangeNumber(0,111,100,FRLVDTXPos,FRLVDTYPos); 00177 ChangeNumber(0,111,100,BLLVDTXPos,BLLVDTYPos); 00178 ChangeNumber(0,111,100,BRLVDTXPos,BRLVDTYPos); 00179 00180 while(changescreen_command.read()==0){ 00181 if(can.read(msg)){ 00182 can_data=msg.data[0]; 00183 if(msg.id==FL_LVDT_ID){ 00184 FLLVDT=can_data; 00185 ChangeNumber(FLLVDT,FLLVDT0,100,FLLVDTXPos,FLLVDTYPos); 00186 UpdateLVDTScale(FLLVDT,FLLVDT0,FLLVDTBarXPos,FLLVDTBarYPos); 00187 FLLVDT0=FLLVDT; 00188 }else if(msg.id==FR_LVDT_ID){ 00189 FRLVDT=can_data; 00190 ChangeNumber(FRLVDT,FRLVDT0,100,FRLVDTXPos,FRLVDTYPos); 00191 UpdateLVDTScale(FRLVDT,FRLVDT0,FRLVDTBarXPos,FRLVDTBarYPos); 00192 FRLVDT0=FRLVDT; 00193 }else if(msg.id==BL_LVDT_ID){ 00194 BLLVDT=can_data; 00195 ChangeNumber(BLLVDT,BLLVDT0,100,BLLVDTXPos,BLLVDTYPos); 00196 UpdateLVDTScale(BLLVDT,BLLVDT0,BLLVDTBarXPos,BLLVDTBarYPos); 00197 BLLVDT0=BLLVDT; 00198 }else if(msg.id==BR_LVDT_ID){ 00199 BRLVDT=can_data; 00200 ChangeNumber(BRLVDT,BRLVDT0,100,BRLVDTXPos,BRLVDTYPos); 00201 UpdateLVDTScale(BRLVDT,BRLVDT0,BRLVDTBarXPos,BRLVDTBarYPos); 00202 BRLVDT0=BRLVDT; 00203 }; 00204 }; 00205 }; 00206 lcd.SetTextColor(LCD_COLOR_WHITE); 00207 lcd.FillRect(0,0,800,480); 00208 lcd.SetTextColor(LCD_COLOR_BLACK); 00209 MainScreen(); 00210 };*/
Generated on Thu Jul 14 2022 09:25:33 by 1.7.2