Ignore:
Timestamp:
Feb 23, 2025, 1:25:41 PM (5 months ago)
Author:
f.jahn
Message:

LED Modul hinzugefügt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/firmware/Core/src/mode_secondaryprotection.c

    r9 r10  
     1//Secondary Protection Modus
     2//Schaltet ab: Wenn LVP und OVP gleichzeitig kommen. --> Kein Auto Reconnect!
     3//Schaltet ab: Wenn Fault kommt --> keine automatisches Reconnect!
     4
    15#include "mode_secondaryprotection.h"
     6
     7
     8#include "stdio.h"
     9#include "mode_secondaryprotection.h"
     10#include "button.h"
     11#include "relais.h"
     12#include "main.h"
     13#include "leds.h"
     14
     15  //Prüfe FAULT Eingang
    216
    317
     
    519{
    620
     21  int faultInput = 0;
     22  int lvpAndOvpInput = 0;
     23  static int faultMode = 0;
     24
     25
     26  //Prüfe Fehler
     27  if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
     28  {
     29    faultInput = 1;
     30
     31    if (faultMode == 0)
     32    {
     33      faultMode = 1;
     34      LEDS_RT_Blink_Start(1000, 1000);         
     35      printf("FAULT DETECTED!\n");
     36    }
     37
     38    if (BUTTON_GetMode() != BUTTON_OFF)
     39    {
     40       BUTTON_SetModeOff();
     41    }
     42
     43    if (RELAIS_GetState() == 1)
     44    {
     45      printf("RESET RELAIS: FAULT DETECTED!\n");
     46      RELAIS_ResetPuls();       
     47    }     
     48  }
     49  else
     50  {
     51    faultInput = 0;
     52  }
     53
     54  if ((HAL_GPIO_ReadPin(GPIO_INPUT_LVP_GPIO_Port, GPIO_INPUT_LVP_Pin) == GPIO_PIN_SET) &&  (HAL_GPIO_ReadPin(GPIO_INPUT_OVP_GPIO_Port, GPIO_INPUT_OVP_Pin) == GPIO_PIN_SET))
     55  {
     56    lvpAndOvpInput = 1;
     57
     58    if (faultMode == 0)
     59    {
     60      faultMode = 1;
     61      LEDS_RT_Blink_Start(500, 1000);       
     62      printf("FAULT DETECTED!\n");
     63    }
     64
     65    if (BUTTON_GetMode() != BUTTON_OFF)
     66    {
     67       BUTTON_SetModeOff();
     68    }
     69
     70    if (RELAIS_GetState() == 1)
     71    {
     72      printf("RESET RELAIS: SECONDARY PROTECTION (OVP AND LVP = LOW)!\n");
     73      RELAIS_ResetPuls();
     74    }     
     75  }
     76  else
     77  {
     78    lvpAndOvpInput = 0;
     79  }
     80
     81
     82
     83  //Prüfen ob ausgeschaltet werden muss
     84  if (RELAIS_GetState() == 1)
     85  {
     86    if (BUTTON_GetMode() == BUTTON_OFF)       
     87    {
     88      RELAIS_ResetPuls();
     89    }
     90  }
     91
     92
     93  //Prüfen ob eingeschaltet werden kann
     94  if ((RELAIS_GetState() == 0) && (faultInput == 0) && (lvpAndOvpInput == 0))
     95  {
     96   
     97    if (BUTTON_GetMode() == BUTTON_MANUAL_ON)
     98    {     
     99      LEDS_RT_Off(); //Falls im LED im Fehlermode, so können wir diese jetzt wieder ausschalten
     100      faultMode = 0;
     101      RELAIS_SetPuls();
     102     
     103    }
     104    else if (BUTTON_GetMode() == BUTTON_AUTO)
     105    {
     106      LEDS_RT_Off(); //Falls im LED im Fehlermode, so können wir diese jetzt wieder ausschalten
     107      faultMode = 0;
     108      RELAIS_SetPuls();
     109    }
     110  }
    7111}
Note: See TracChangeset for help on using the changeset viewer.