Changeset 38 for trunk/fw_g473rct/Core/Src/main.c
- Timestamp:
- Nov 1, 2025, 5:29:27 PM (45 hours ago)
- File:
-
- 1 edited
-
trunk/fw_g473rct/Core/Src/main.c (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/fw_g473rct/Core/Src/main.c
r35 r38 24 24 #include "fdcan.h" 25 25 #include "i2c.h" 26 #include "iwdg.h" 26 27 #include "rtc.h" 27 28 #include "spi.h" … … 62 63 /* Private define ------------------------------------------------------------*/ 63 64 /* USER CODE BEGIN PD */ 64 65 #define MAX_OVERCURRENT_RETRYS 3 65 66 /* USER CODE END PD */ 66 67 … … 157 158 MX_CRC_Init(); 158 159 MX_RTC_Init(); 160 MX_IWDG_Init(); 159 161 /* USER CODE BEGIN 2 */ 160 162 printf("Test debug io\r\n"); … … 165 167 166 168 startType_t startType = EEPROM_isFirstStart(); 167 169 168 170 switch(startType) 169 171 { … … 173 175 case FIRST_START_ERROR: EEPROM_fullRestore(&sys_data); break; 174 176 } 177 HAL_IWDG_Refresh(&hiwdg); 175 178 176 179 if(HAL_GPIO_ReadPin(GPIO_INPUT_BTN_MODE_GPIO_Port, GPIO_INPUT_BTN_MODE_Pin) == GPIO_PIN_RESET) … … 183 186 } 184 187 } 185 188 HAL_IWDG_Refresh(&hiwdg); 186 189 LoadBackupRegister(); 187 190 … … 189 192 // Modbus Initialisierung 190 193 mbInit(&modbusData, sys_data.s.parameter.baudrate, sys_data.s.parameter.parityMode, sys_data.s.parameter.stopBit, &huart2); 191 194 HAL_IWDG_Refresh(&hiwdg); 192 195 // STM32G0 Chiptemperatur Kalibrierung 193 196 CHIP_TEMPERATURE_Calibration(); … … 198 201 HAL_ADCEx_Calibration_Start(&hadc4, ADC_DIFFERENTIAL_ENDED); 199 202 HAL_ADCEx_Calibration_Start(&hadc5, ADC_SINGLE_ENDED); 200 203 HAL_IWDG_Refresh(&hiwdg); 201 204 202 205 //SET_BIT(hadc2.Instance->CFGR, ADC_CFGR_DMAEN); //Enable DMA transfer for ADC slave (ADC12_CCR.MDMA = 0b00 -> MDMA mode disabled) … … 232 235 233 236 // ADS1260 Initialierung 237 HAL_IWDG_Refresh(&hiwdg); 234 238 ADS1260_init(); 239 HAL_IWDG_Refresh(&hiwdg); 235 240 printf("ADS1260 Init\n"); 236 241 OUTPUTS_Init(); … … 241 246 HAL_GPIO_WritePin(LED_ERROR_GPIO_Port, LED_ERROR_Pin, GPIO_PIN_SET); 242 247 HAL_Delay(350); 248 HAL_IWDG_Refresh(&hiwdg); 243 249 HAL_GPIO_WritePin(LED_ERROR_GPIO_Port, LED_ERROR_Pin, GPIO_PIN_RESET); 244 250 HAL_Delay(350); 251 HAL_IWDG_Refresh(&hiwdg); 245 252 } 246 253 … … 255 262 256 263 /* USER CODE BEGIN 3 */ 257 if (newADC12Data == 1) 264 HAL_IWDG_Refresh(&hiwdg); 265 if (newADC12Data == 1) 258 266 { 259 267 //Mit ADC_DIV2,Sample time 12,5Cycklen, ADC Clock 50Mhz, Oversampling 256 … … 306 314 } 307 315 308 // Zeitbasis ms Systick; 316 317 318 // Zeitbasis ms Systick; 309 319 newTime = HAL_GetTick(); 310 timeDiff = newTime - oldTime; 311 oldTime = newTime; 312 313 if ((mode_button_disable_time > 0) && (timeDiff > 0)) 314 { 315 mode_button_disable_time--; 316 } 317 318 // Zeitbasis Sekunde ber RTC 320 321 if (newTime != oldTime) { 322 323 oldTime = newTime; 324 325 if (mode_button_disable_time > 0) 326 { 327 mode_button_disable_time--; 328 } 329 330 } 331 332 333 if (sys_data.s.values.overcurrentRetryCounter > MAX_OVERCURRENT_RETRYS) 334 { 335 printf("SHORT_CIRCUIT_PROTECTION\n"); 336 sys_data.s.values.lvpState = OUTPUTS_LVP_SHORT_PROTECTION; 337 HAL_GPIO_WritePin(DISCHARGE_ENABLE_GPIO_Port, DISCHARGE_ENABLE_Pin, OUTPUTS_DISCHARGE_NOT_ALLOWED); 338 339 sys_data.s.values.lvpState = OUTPUTS_OVP_SHORT_PROTECTION; 340 HAL_GPIO_WritePin(CHARGE_ENABLE_GPIO_Port, CHARGE_ENABLE_Pin, OUTPUTS_CHARGE_NOT_ALLOWED); 341 342 343 344 } 345 346 // Zeitbasis Sekunde über RTC 319 347 // muss immer sowohl das Zeit- als auch das Datumsregister lesen 320 348 // da beide Shadowregister sind sonst wird die Zeit nicht mehr geupdatet … … 375 403 case COMMAND_RESTORE_LAST_SAVED_VALUES: EEPROM_readConfig(&sys_data); break; 376 404 case COMMAND_STORE_WITH_SERIAL_NUMBER: EEPROM_storeConfig(&sys_data,1); break; // Seriennummer schreiben 377 case COMMAND_RESTART: NVIC_SystemReset();break;405 case COMMAND_RESTART: while(1); break; 378 406 case COMMAND_BATTERY_CURRENT_OFFSET_CAL: 379 407 ADS_1260_BatteryCurrentOffsetCalibrationStart(&sys_data); … … 465 493 * in the RCC_OscInitTypeDef structure. 466 494 */ 467 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_ HSE468 |RCC_OSCILLATORTYPE_ LSE;495 RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI48|RCC_OSCILLATORTYPE_LSI 496 |RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE; 469 497 RCC_OscInitStruct.HSEState = RCC_HSE_ON; 470 498 RCC_OscInitStruct.LSEState = RCC_LSE_ON; 499 RCC_OscInitStruct.LSIState = RCC_LSI_ON; 471 500 RCC_OscInitStruct.HSI48State = RCC_HSI48_ON; 472 501 RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; … … 768 797 return result; 769 798 } 799 800 770 801 /* USER CODE END 4 */ 771 802
Note: See TracChangeset
for help on using the changeset viewer.
