Index: trunk/firmware_v2/SES/src/main.c
===================================================================
--- trunk/firmware_v2/SES/src/main.c	(revision 24)
+++ trunk/firmware_v2/SES/src/main.c	(revision 28)
@@ -24,4 +24,5 @@
 #include "usart.h"
 #include "gpio.h"
+#include "iwdg.h"
 
 /* Private includes ----------------------------------------------------------*/
@@ -114,4 +115,5 @@
   MX_TIM16_Init();
   MX_TIM17_Init();
+  MX_IWDG_Init();
  // MX_USART1_UART_Init();
   /* USER CODE BEGIN 2 */
@@ -120,5 +122,5 @@
   HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_SET);
   HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ON_GPIO_Port, GPIO_OUTPUT_LED_ON_Pin, GPIO_PIN_SET);
-  HAL_Delay(1000);
+  HAL_Delay(500);
   HAL_GPIO_WritePin(GPIO_OUTPUT_BUZZER_GPIO_Port, GPIO_OUTPUT_BUZZER_Pin, GPIO_PIN_RESET);
   HAL_GPIO_WritePin(GPIO_OUTPUT_LED_ERROR_GPIO_Port, GPIO_OUTPUT_LED_ERROR_Pin, GPIO_PIN_RESET);
@@ -161,4 +163,7 @@
 
     /* USER CODE BEGIN 3 */
+	HAL_IWDG_Refresh(&hiwdg);
+
+
 	if (oldTimeMSTick != HAL_GetTick())
     {
Index: trunk/firmware_v2/SES/src/mode_secondaryprotection.c
===================================================================
--- trunk/firmware_v2/SES/src/mode_secondaryprotection.c	(revision 24)
+++ trunk/firmware_v2/SES/src/mode_secondaryprotection.c	(revision 28)
@@ -119,6 +119,11 @@
 
   if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
-  {
-    faultInput = 1;
+  {    
+	HAL_Delay(1); // Verzögerung 1ms damit eventuell noch zuerst durch smartPro der Strom gestoppt werden kann
+	if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
+	{
+	  faultInput = 1;
+	}
+
   }
   else
@@ -216,4 +221,35 @@
 static void SECONDARYPROTECTION_SM_ManualOn(void)
 {
+
+  int faultInput = 0;
+
+
+  if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
+  {    
+	HAL_Delay(500); // Verzögerung 500ms damit eventuell noch zuerst durch smartPro der Strom gestoppt werden kann
+	if (HAL_GPIO_ReadPin(GPIO_INPUT_FAULT_GPIO_Port, GPIO_INPUT_FAULT_Pin) == GPIO_PIN_RESET)       
+	{
+	  faultInput = 1;
+	}
+
+  }
+  else
+  {
+    faultInput = 0;
+  }
+
+  if (faultInput == 1)
+  {
+    RELAIS_ResetPuls();
+    BUZZER_Beep(BUZZER_ON_TIME_REJECT); //Warnung
+    LEDS_GN_Off();
+    LEDS_RT_BlinkCode_Start(BLINK_CODE_ERROR_FAULT_INPUT, LED_RT_ON_TIME_WARN_FAULT_INPUT, LED_RT_OFF_TIME, LED_RT_OFF_TIME *5); //Fehler Anzeigen
+    BUTTON_SetModeOff(); //Damit nicht von alleine wieder eingeschaltet wird
+    printf("FAULT INPUT EVENT DETECTED!\n");
+    printf("NEW_STATE: SECONDARYPROTECTION_ERROR\n");
+    smState = SECONDARYPROTECTION_ERROR;
+  }
+
+
   // Prüfe Wechsel in off mode
   if (BUTTON_GetMode() == BUTTON_OFF)
Index: trunk/firmware_v2/SES/src/mode_secondaryprotection_plus.c
===================================================================
--- trunk/firmware_v2/SES/src/mode_secondaryprotection_plus.c	(revision 24)
+++ trunk/firmware_v2/SES/src/mode_secondaryprotection_plus.c	(revision 28)
@@ -10,6 +10,7 @@
 // - Die letzten beiden Positionen können vielleicht ungewollt sein.
 
+
 // Hier wird Manuall On nicht erlaubt -> Extra sicher
-// Ansonsten wie Modus 0
+// Ansonsten wie Modus 1
 
 
@@ -30,5 +31,5 @@
   SECONDARYPROTECTION_OFF, 
   SECONDARYPROTECTION_ON,
- // SECONDARYPROTECTION_MANUAL_ON, 
+ // SECONDARYPROTECTION_MANUAL_ON, HIer nicht erlaubt für mehr Sicherheit
   SECONDARYPROTECTION_ERROR
 } SECONDARYPROTECTION_state_t;
Index: trunk/firmware_v2/SES/src/voltage_meas.c
===================================================================
--- trunk/firmware_v2/SES/src/voltage_meas.c	(revision 24)
+++ trunk/firmware_v2/SES/src/voltage_meas.c	(revision 28)
@@ -11,5 +11,17 @@
 static uint32_t voltageDrop;
 
-#define	VOLTAGE_DIVIDER_12V		6
+
+
+#if defined SYSTEM_VOLTAGE_12V
+  #define VOLTAGE_DIVIDER			6
+#elif defined SYSTEM_VOLTAGE_24V
+  #define VOLTAGE_DIVIDER			11
+#elif defined SYSTEM_VOLTAGE_48V
+  #define VOLTAGE_DIVIDER			21
+#else
+  #error "System voltage not defined"
+#endif
+
+
 #define VOLTAGE_DROP_U_LIMIT	90 //mV ca. 30 mV Messfehler + 60mV bei 150A 
 #define VOLTAGE_DROP_T_LIMIT	1000
@@ -24,5 +36,5 @@
   vuin = adcValUin * VREF;
   vuin = vuin / 65635;
-  vuin = vuin * VOLTAGE_DIVIDER_12V; //Divider für 12V Version
+  vuin = vuin * VOLTAGE_DIVIDER; //Divider für 12V Version
   voltageUin = vuin;
 
@@ -31,5 +43,5 @@
   vuout = adcValUout * VREF;
   vuout = vuout / 65635;
-  vuout = vuout * VOLTAGE_DIVIDER_12V; //Divider für 12V Version
+  vuout = vuout * VOLTAGE_DIVIDER; //Divider für 12V Version
   voltageUout = vuout;
   
