From 9f404c5525994b2d895d1af39b5b2826cb949568 Mon Sep 17 00:00:00 2001 From: Eggert Jung Date: Mon, 14 Nov 2022 22:43:01 +0100 Subject: [PATCH] add code for external notaus --- avrIOhelper/io-helper.h | 19 ++++++++- main.c | 106 ++++++++++++++++++++++++++++++++++++------------ 2 files changed, 97 insertions(+), 28 deletions(-) diff --git a/avrIOhelper/io-helper.h b/avrIOhelper/io-helper.h index 71071f1..d556661 100644 --- a/avrIOhelper/io-helper.h +++ b/avrIOhelper/io-helper.h @@ -73,6 +73,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 @@ -90,11 +93,23 @@ void ioHelperEdgeDetector(void); #define BitPinK0 8 //A8 #define BitPinK1 9 //A9 -#define BitPinD3 10 //INO -#define BitPinD2 11 //IN1 +#define BitPinK2 10 //A10 +#define BitPinK3 11 //A11 +#define BitPinK4 12 //A12 +#define BitPinK5 13 //A13 +#define BitPinK6 14 //A14 +#define BitPinK7 15 //A15 + +#define BitPinD7 16 //I16 +#define BitPinG2 17 //I17 +#define BitPinG1 18 //I18 +#define BitPinD3 19 //INO +#define BitPinD2 20 //IN1 + #define IN_ANLAGE_EIN_INV BitPinF5 #define IN_NOTAUS_ANLAGE BitPinF7 +#define IN_NOTAUS_ANLAGE_KALT BitPinK1 #define IN_NOTAUS_SCHRANK BitPinK0 #endif diff --git a/main.c b/main.c index 7ca309c..dc8a879 100644 --- a/main.c +++ b/main.c @@ -55,38 +55,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); +// } +// } +//} int main() {