You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.4 KiB
C
74 lines
2.4 KiB
C
#include "kraftsensor.h"
|
|
#include "avrIOhelper/io-helper.h"
|
|
#include <stdio.h>
|
|
|
|
void do_notaus(){
|
|
if(!read_Input(IN_NOTAUS_ANLAGE, LEVEL) || read_Input(IN_NOTAUS_SCHRANK, LEVEL) || read_Input(IN_NOTAUS_DISPLAY, LEVEL)){
|
|
/* at least on pressed */
|
|
ioHelperSetBit(outStates, AMPEL_ROT, 1);
|
|
ioHelperSetBit(outStates, AMPEL_GELB, 0);
|
|
ioHelperSetBit(outStates, AMPEL_GRUEN, 0);
|
|
|
|
set_Output(LED_GRN_NOTAUS_SCHRANK, OFF);
|
|
set_Output(LED_GRN_NOTAUS_ANLAGE, OFF);
|
|
set_Output(LED_GRN_NOTAUS_DISPLAY, OFF);
|
|
|
|
if(!read_Input(IN_NOTAUS_ANLAGE, LEVEL)){
|
|
set_Output(LED_ROT_NOTAUS_ANLAGE, BLINK);
|
|
set_Output(LED_ROT_NOTAUS_SCHRANK, ON);
|
|
set_Output(LED_ROT_NOTAUS_DISPLAY, ON);
|
|
}
|
|
|
|
if(read_Input(IN_NOTAUS_SCHRANK, LEVEL)){
|
|
set_Output(LED_ROT_NOTAUS_ANLAGE, ON);
|
|
set_Output(LED_ROT_NOTAUS_SCHRANK, BLINK);
|
|
set_Output(LED_ROT_NOTAUS_DISPLAY, ON);
|
|
}
|
|
|
|
if(read_Input(IN_NOTAUS_DISPLAY, LEVEL)){
|
|
set_Output(LED_ROT_NOTAUS_ANLAGE, ON);
|
|
set_Output(LED_ROT_NOTAUS_SCHRANK, ON);
|
|
set_Output(LED_ROT_NOTAUS_DISPLAY, BLINK);
|
|
}
|
|
|
|
}
|
|
else if(!read_Input(IN_ANLAGE_EIN, LEVEL)){
|
|
/* nothing pressed, but power not on */
|
|
ioHelperSetBit(outStates, AMPEL_ROT, 0);
|
|
ioHelperSetBit(outStates, AMPEL_GELB, 1);
|
|
ioHelperSetBit(outStates, AMPEL_GRUEN, 0);
|
|
|
|
set_Output(LED_ROT_NOTAUS_ANLAGE, ON);
|
|
set_Output(LED_ROT_NOTAUS_SCHRANK, ON);
|
|
set_Output(LED_ROT_NOTAUS_DISPLAY, ON);
|
|
|
|
set_Output(LED_GRN_NOTAUS_SCHRANK, ON);
|
|
set_Output(LED_GRN_NOTAUS_ANLAGE, ON);
|
|
set_Output(LED_GRN_NOTAUS_DISPLAY, ON);
|
|
}
|
|
else{
|
|
/* powered on */
|
|
ioHelperSetBit(outStates, AMPEL_ROT, 0);
|
|
ioHelperSetBit(outStates, AMPEL_GELB, 0);
|
|
ioHelperSetBit(outStates, AMPEL_GRUEN, 1);
|
|
|
|
set_Output(LED_GRN_NOTAUS_SCHRANK, ON);
|
|
set_Output(LED_GRN_NOTAUS_ANLAGE, ON);
|
|
set_Output(LED_GRN_NOTAUS_DISPLAY, ON);
|
|
|
|
set_Output(LED_ROT_NOTAUS_ANLAGE, OFF);
|
|
set_Output(LED_ROT_NOTAUS_SCHRANK, OFF);
|
|
set_Output(LED_ROT_NOTAUS_DISPLAY, OFF);
|
|
}
|
|
|
|
if(!kraftsensor_valid)
|
|
{
|
|
set_Output(LED_FEHLER, ON);
|
|
}
|
|
else
|
|
set_Output(LED_FEHLER, OFF);
|
|
|
|
}
|
|
|
|
|