code continued...
/**************************************************************************
*
*
/**************************************************************************/
void eoa(int pin) {
switch (mode[pin]) {
case AR:
break;
case AD:
bitClear(PORTD, GATEpin[pin]);
break;
case LOOP:
bitClear(PORTD, GATEpin[pin]);
break;
}
}
/**************************************************************************
*
*
/**************************************************************************/
void eoc(int pin) {
if (mode[pin] == LOOP) {
bitSet(PORTD, GATEpin[pin]);
}();
}
/**************************************************************************
*
*
/**************************************************************************/
void trig(int pin) {
state = bitRead(PIND,pin);
switch (mode[pin]) {
case AR:
if (state)
bitSet(PORTD, GATEpin[pin]);
else
bitClear(PORTD, GATEpin[pin]);
break;
case AD:
if (state) {
bitSet(PORTD, GATEpin[pin]);
}
break;
case LOOP:
if (state) {
bitSet(PORTD, GATEpin[pin]);
}
break;
}
}
/**************************************************************************
*
*
/**************************************************************************/
void EOA0() {
EOA_flag[0] = ON;
}
void EOA1() {
EOA_flag[1] = ON;
}
void EOA2() {
EOA_flag[2] = ON;
}
void EOA3() {
EOA_flag[3] = ON;
}
/**************************************************************************
*
*
/**************************************************************************/
void EOC0() {
EOC_flag[0] = ON;
}
void EOC1() {
EOC_flag[1] = ON;
}
void EOC2() {
EOC_flag[2] = ON;
}
void EOC3() {
EOC_flag[3] = ON;
}
/**************************************************************************
*
*
/**************************************************************************/
void TRIG0() {
TRIG_flag[0] = ON;
}
void TRIG1() {
if (quadMode[0] == OFF) {
TRIG_flag[1] = ON;}
}
void TRIG2() {
TRIG_flag[2] = ON;
}
void TRIG3() {
if (quadMode[1] == OFF) {
TRIG_flag[3] = ON;
}
}
/**************************************************************************
*
*
/**************************************************************************/
void checkEOA() {
if (EOA_flag[0] == ON) {
EOA_flag[0] = OFF;
if (quadMode[0] == ON) digitalWrite(GATEpin[1], HIGH);
else eoa(0);
}
if (EOA_flag[1] == ON) {
EOA_flag[1] = OFF;
if (quadMode[0] == ON) digitalWrite(GATEpin[0], LOW);
else eoa(1);
}
if (EOA_flag[2] == ON) {
EOA_flag[2] = OFF;
if (quadMode[1] == ON) digitalWrite(GATEpin[3], HIGH);
else eoa(2);
}
if (EOA_flag[3] == ON) {
EOA_flag[3] = OFF;
if (quadMode[1] == ON) digitalWrite(GATEpin[2], LOW);
else eoa(3);
}
}
/**************************************************************************
*
*
/**************************************************************************/
void checkEOC() {
if (EOC_flag[0] == ON) {
EOC_flag[0] = OFF;
if (quadMode[0] == ON) {
digitalWrite(GATEpin[0], HIGH);
digitalWrite(GATEpin[1], LOW);
} else eoc(0);
}
if (EOC_flag[1] == ON) {
EOC_flag[1] = OFF;
if (quadMode[0] == OFF) eoc(1);
}
if (EOC_flag[2] == ON) {
EOC_flag[2] = OFF;
if (quadMode[1] == ON) {
digitalWrite(GATEpin[2], HIGH);
digitalWrite(GATEpin[3], LOW);
} else eoc(2);
}
if (EOC_flag[3] == ON) {
EOC_flag[3] = OFF;
if (quadMode[0] == OFF) eoc(3);
}
}
/**************************************************************************
*
*
/**************************************************************************/
void checkTRIG() {
if (EOC_flag[0] == ON) {
EOC_flag[0] = OFF;
trig(0);
}
if (EOC_flag[1] == ON) {
EOC_flag[1] = OFF;
if (quadMode[0] == OFF) {
trig(1);}
}
if (EOC_flag[2] == ON) {
EOC_flag[2] = OFF;
trig(2);
}
if (EOC_flag[3] == ON) {
EOC_flag[3] = OFF;
if (quadMode[1] == OFF) {
trig(3);}
}
}