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.
64 lines
2.2 KiB
C
64 lines
2.2 KiB
C
#include <avrIOhelper/io-helper.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);
|
|
}
|
|
}
|
|
|
|
|