Changeset 24 for trunk/firmware_v2/SES/src/main.c
- Timestamp:
- Aug 23, 2025, 3:27:52 PM (4 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/firmware_v2/SES/src/main.c
r23 r24 32 32 #include "relais.h" 33 33 #include "leds.h" 34 #include "fan.h" 34 35 #include "chip_temperature.h" 35 36 #include "modeswitch.h" … … 141 142 142 143 144 145 extern uint32_t frequency, ic_overflows; 146 ic_overflows = 0U; 147 __HAL_TIM_SetCounter(&htim16, 0U); 148 149 HAL_TIM_Base_Start_IT(&htim16); 150 HAL_TIM_IC_Start_IT(&htim16, TIM_CHANNEL_1); 151 int oldcaptureValue=0; 152 153 143 154 /* USER CODE END 2 */ 144 155 … … 166 177 { 167 178 msCounter = 0; 168 temperature =CHIP_TEMPERATURE_Exec(adcData[4]);169 170 if ( temperature > 50)179 CHIP_TEMPERATURE_Exec(adcData[4]); 180 temperature=CHIP_TEMPERATURE_GetTemp(); 181 if ( temperature > 50) 171 182 { 172 183 pwm++; … … 178 189 if (pwm > 0) pwm--; 179 190 } 180 SetFANSpeed(pwm); 181 182 183 if (temperature > 80) 184 { 185 186 187 BUTTON_SetModeOff(); //Damit nicht von alleine wieder eingeschaltet wird 188 LEDS_GN_Off(); 189 LEDS_RT_BlinkCode_Start(BLINK_CODE_ERROR_TEMP, LED_RT_ON_TIME_WARN_TEMP, LED_RT_OFF_TIME, LED_RT_OFF_TIME *5); //Fehler Anzeigen 190 printf("Temperature too high!\n"); 191 192 } 193 194 // Starting measuring frequency of the FAN tacho output 195 static unsigned stage; 196 extern uint32_t freq, ic_overflows; 197 198 switch (stage) 199 { 200 case 0: 201 ic_overflows = 0U; 202 __HAL_TIM_SetCounter(&htim16, 0U); 203 HAL_TIM_Base_Start_IT(&htim16); 204 HAL_TIM_IC_Start_IT(&htim16, TIM_CHANNEL_1); 205 //printf("IC started\n"); 206 stage++; 207 break; 208 209 case 1: stage++; break; 210 case 2: stage++; break; 211 case 3: stage++; break; 212 case 4: stage++; break; 213 case 5: stage++; break; 214 case 6: 215 //printf("F = %u\n", freq); 216 if (!freq) 217 { 218 static unsigned zeroFreqCnt; 219 220 zeroFreqCnt++; 221 // Checking if we set last time non-zero FAN-speed, but 222 // tacho-sensor signal is absent more than 15 sec. 223 if (zeroFreqCnt > 3U && GetLastSpeed()) 224 { 225 SetFANSpeed(0U); 226 // ACHTUNG! Der Lüfter ist kaputt! 227 } 228 } 229 stage = 0; 230 break; 231 } 191 192 FAN_SetSpeed(pwm); 232 193 233 194 uin = VOLTAGE_MEAS_GetUin(); 234 195 uout = VOLTAGE_MEAS_GetUout(); 235 printf("uin= %d, uout=%d, temp=%d, pwm=%d, fan=%d\r\n", uin, uout, temperature,pwm,freq); 196 uint32_t rpm; 197 rpm = frequency / 2; 198 rpm = rpm * 60; 199 printf("uin= %d, uout=%d, temp=%d, pwm=%d, fan=%d\r\n", uin, uout, temperature,pwm,rpm); 236 200 237 201 … … 242 206 switch (MODESWITCH_GetMode()) 243 207 { 244 case MODE_MAINSWITCH: 208 case MODE_MAINSWITCH: //0 245 209 MODE_MAINSWITCH_Exec(); 246 210 break; 247 211 248 case MODE_MAINSWITCH_SECONDARYPROTECTION: 212 case MODE_MAINSWITCH_SECONDARYPROTECTION://1 249 213 MODE_SECONDARYPROTECTION_Exec(); 250 214 break; 251 215 252 case MODE_MAINSWITCH_SECONDARYPROTECTION_PLUS: 216 case MODE_MAINSWITCH_SECONDARYPROTECTION_PLUS://2 253 217 MODE_SECONDARYPROTECTION_PLUS_Exec(); 254 218 break; 255 219 256 case MODE_MAINSWITCH_LVP_OVP: 257 //MODE_LVP_OVP_Exec();258 break; 259 260 //case MODE_MAINSWITCH_LVP:261 //MODE_LVP_Exec();262 //break;263 264 //case MODE_MAINSWITCH_OVP:265 //MODE_OVP_Exec();266 //break;220 case MODE_MAINSWITCH_LVP_OVP://3 221 MODE_LVP_OVP_Exec(); 222 break; 223 224 case MODE_MAINSWITCH_LVP://4 225 MODE_LVP_Exec(); 226 break; 227 228 case MODE_MAINSWITCH_OVP://5 229 MODE_OVP_Exec(); 230 break; 267 231 268 232
Note: See TracChangeset
for help on using the changeset viewer.