add code for external notaus

master
Eggert Jung 3 years ago
parent e8d73df01d
commit 9f404c5525

@ -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

106
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()
{