diff --git a/avrIOhelper/io-helper.h b/avrIOhelper/io-helper.h index 1a4ba12..bfb8788 100644 --- a/avrIOhelper/io-helper.h +++ b/avrIOhelper/io-helper.h @@ -78,6 +78,9 @@ void ioHelperEdgeDetector(void); #define LED_ROT_NOTAUS_ANLAGE BitPE5 #define LED_GRN_NOTAUS_SCHRANK BitPG5 #define LED_ROT_NOTAUS_SCHRANK BitPE3 +#define LED_GRN_NOTAUS_ANLAGE_KALT BitPH3 +#define LED_ROT_NOTAUS_ANLAGE_KALT BitPH4 + #define LED_PLC_OK BitPH5 #define LED_BUS_OK BitPD4 #define LED_KALTWASSER_DRAN_GR 23 @@ -127,6 +130,7 @@ void ioHelperEdgeDetector(void); #define IN_ANLAGE_EIN_INV BitPinF5 #define IN_NOTAUS_ANLAGE BitPinF7 +#define IN_NOTAUS_ANLAGE_KALT BitPinK1 #define IN_NOTAUS_SCHRANK BitPinK0 #define IN_KLATWASSER_DRAN 6 diff --git a/main.c b/main.c index 2488e0e..efc7a89 100644 --- a/main.c +++ b/main.c @@ -59,38 +59,92 @@ void IO_LIBRARY_Init(void) { } void do_notaus(){ - if(read_Input(IN_NOTAUS_ANLAGE, LEVEL) || read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // NOTAUS - set_Output(LED_GRN_NOTAUS_SCHRANK, OFF); // disable green lamps - set_Output(LED_GRN_NOTAUS_ANLAGE, OFF); - } + if(read_Input(IN_NOTAUS_ANLAGE, LEVEL) || read_Input(IN_NOTAUS_SCHRANK, LEVEL) || read_Input(IN_NOTAUS_ANLAGE_KALT, LEVEL)){ + /* at least one pressed */ + //notaus_state = POWER_OFF; + + set_Output(LED_GRN_NOTAUS_SCHRANK, OFF); + set_Output(LED_GRN_NOTAUS_ANLAGE, OFF); + set_Output(LED_GRN_NOTAUS_ANLAGE_KALT, 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_ANLAGE_KALT, 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_ANLAGE_KALT, ON); + } + + if(read_Input(IN_NOTAUS_ANLAGE_KALT, LEVEL)){ + set_Output(LED_ROT_NOTAUS_ANLAGE, ON); + set_Output(LED_ROT_NOTAUS_SCHRANK, ON); + set_Output(LED_ROT_NOTAUS_ANLAGE_KALT, BLINK); + } - if(read_Input(IN_NOTAUS_ANLAGE, LEVEL) && read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // both activated - set_Output(LED_ROT_NOTAUS_ANLAGE, BLINK); - set_Output(LED_ROT_NOTAUS_SCHRANK, BLINK); } - else if(read_Input(IN_NOTAUS_ANLAGE, LEVEL)){ // top one activated - set_Output(LED_ROT_NOTAUS_ANLAGE, BLINK); + else if(read_Input(IN_ANLAGE_EIN_INV, LEVEL)){ + /* nothing pressed, but power not on */ + //notaus_state = ARMED; + + set_Output(LED_ROT_NOTAUS_ANLAGE, ON); set_Output(LED_ROT_NOTAUS_SCHRANK, ON); + set_Output(LED_ROT_NOTAUS_ANLAGE_KALT, ON); + + set_Output(LED_GRN_NOTAUS_SCHRANK, ON); + set_Output(LED_GRN_NOTAUS_ANLAGE, ON); + set_Output(LED_GRN_NOTAUS_ANLAGE_KALT, ON); } - else if(read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // bottom one activated - set_Output(LED_ROT_NOTAUS_SCHRANK, BLINK); - set_Output(LED_ROT_NOTAUS_ANLAGE, ON); - } - else{ // none activated - set_Output(LED_ROT_NOTAUS_SCHRANK, OFF); - set_Output(LED_ROT_NOTAUS_ANLAGE, OFF); - if(!read_Input(IN_ANLAGE_EIN_INV, LEVEL)){ - set_Output(LED_GRN_NOTAUS_ANLAGE, ON); - set_Output(LED_GRN_NOTAUS_SCHRANK, ON); - } - else{ - set_Output(LED_GRN_NOTAUS_ANLAGE, ON); - set_Output(LED_GRN_NOTAUS_SCHRANK, ON); - set_Output(LED_ROT_NOTAUS_ANLAGE, ON); - set_Output(LED_ROT_NOTAUS_SCHRANK, ON); - } + else{ + /* powered on */ + //notaus_state = POWER_ON; + + set_Output(LED_GRN_NOTAUS_SCHRANK, ON); + set_Output(LED_GRN_NOTAUS_ANLAGE, ON); + set_Output(LED_GRN_NOTAUS_ANLAGE_KALT, ON); + + set_Output(LED_ROT_NOTAUS_ANLAGE, OFF); + set_Output(LED_ROT_NOTAUS_SCHRANK, OFF); + set_Output(LED_ROT_NOTAUS_ANLAGE_KALT, OFF); } + } +//void do_notaus(){ +// if(read_Input(IN_NOTAUS_ANLAGE, LEVEL) || read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // NOTAUS +// set_Output(LED_GRN_NOTAUS_SCHRANK, OFF); // disable green lamps +// set_Output(LED_GRN_NOTAUS_ANLAGE, OFF); +// } +// +// if(read_Input(IN_NOTAUS_ANLAGE, LEVEL) && read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // both activated +// set_Output(LED_ROT_NOTAUS_ANLAGE, BLINK); +// set_Output(LED_ROT_NOTAUS_SCHRANK, BLINK); +// } +// else if(read_Input(IN_NOTAUS_ANLAGE, LEVEL)){ // top one activated +// set_Output(LED_ROT_NOTAUS_ANLAGE, BLINK); +// set_Output(LED_ROT_NOTAUS_SCHRANK, ON); +// } +// else if(read_Input(IN_NOTAUS_SCHRANK, LEVEL)){ // bottom one activated +// set_Output(LED_ROT_NOTAUS_SCHRANK, BLINK); +// set_Output(LED_ROT_NOTAUS_ANLAGE, ON); +// } +// else{ // none activated +// set_Output(LED_ROT_NOTAUS_SCHRANK, OFF); +// set_Output(LED_ROT_NOTAUS_ANLAGE, OFF); +// if(!read_Input(IN_ANLAGE_EIN_INV, LEVEL)){ +// set_Output(LED_GRN_NOTAUS_ANLAGE, ON); +// set_Output(LED_GRN_NOTAUS_SCHRANK, ON); +// } +// else{ +// set_Output(LED_GRN_NOTAUS_ANLAGE, ON); +// set_Output(LED_GRN_NOTAUS_SCHRANK, ON); +// set_Output(LED_ROT_NOTAUS_ANLAGE, ON); +// set_Output(LED_ROT_NOTAUS_SCHRANK, ON); +// } +// } +//} void send_temperatures(void){ for(uint8_t i=0; i