Ignore:
Timestamp:
Aug 23, 2025, 3:27:52 PM (4 days ago)
Author:
f.jahn
Message:
LVP, OVP, LVP
OVP modes implementiert
  • Lüftersteuerung in eigenes Modul verlagert
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/firmware_v2/SES/src/main.c

    r23 r24  
    3232#include "relais.h"
    3333#include "leds.h"
     34#include "fan.h"
    3435#include "chip_temperature.h"
    3536#include "modeswitch.h"
     
    141142
    142143
     144       
     145extern 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
    143154  /* USER CODE END 2 */
    144155
     
    166177        {
    167178          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)
    171182          { 
    172183                  pwm++;
     
    178189                if (pwm > 0) pwm--;
    179190          }
    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);
    232193
    233194          uin = VOLTAGE_MEAS_GetUin();
    234195          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);
    236200         
    237201         
     
    242206    switch (MODESWITCH_GetMode())
    243207    {
    244       case MODE_MAINSWITCH:
     208      case MODE_MAINSWITCH: //0
    245209        MODE_MAINSWITCH_Exec();
    246210      break;
    247211
    248       case MODE_MAINSWITCH_SECONDARYPROTECTION:
     212      case MODE_MAINSWITCH_SECONDARYPROTECTION://1
    249213        MODE_SECONDARYPROTECTION_Exec();
    250214      break;
    251215
    252       case MODE_MAINSWITCH_SECONDARYPROTECTION_PLUS:
     216      case MODE_MAINSWITCH_SECONDARYPROTECTION_PLUS://2
    253217        MODE_SECONDARYPROTECTION_PLUS_Exec();
    254218      break;
    255219
    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;
    267231
    268232
Note: See TracChangeset for help on using the changeset viewer.