int Iout=0;
unsigned int output[4];
unsigned int portoutB;
unsigned int portoutC;
#define in_modules 4
#define out_modules 7
int module_out;
//Nano//
int ihcinpin[in_modules]={2,3,4,5}; // Port pins
int ihcoutpin[out_modules]={13,14,15,16,17,18,19}; //Arduino I/O
//Mega//
//int ihcinpin[in_modules]={4,5,6,7}; //Port pins
//int ihcoutpin[out_modules]={2,3,4,5,6,7,8}; //Arduino I/O
//IHCoutput ihcoutput[out_modules];
unsigned int data_in[in_modules];
unsigned int data_in_buffer[in_modules];
unsigned int old_data_in[in_modules];
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Start");
//pinMode(A0, OUTPUT);
//pinMode(A1, OUTPUT);
//pinMode(A2, OUTPUT);
//pinMode(A3, OUTPUT);
//pinMode(A4, OUTPUT);
//pinMode(A5, OUTPUT);
//pinMode(A6, OUTPUT);
//pinMode(A7, OUTPUT);
output[0]=0b10101010;
output[1]=0b00110011;
output[2]=0b11110000;
output[3]=0b01010101;
output[4]=0b10101010;
output[5]=0b11001100;
output[6]=0b00001111;
DDRB =B00100000;
DDRC =B00111111;
//PORTB=B00100000;
//PORTC=B00111111;
module_out=1;
}
//PORTB = PORTB | B00100000;
//PORTB = PORTB & B11011111;
void loop() {
// put your main code here, to run repeatedly:
//Serial.println (" ");Serial.print(Iout); Serial.print(" ");
if (Iout<(17*4)) {
if ((Iout&0b11)<3) {
for (module_out=0;module_out<out_modules;module_out++) {
//Serial.print((Iout&0b10)>1);
digitalWrite(ihcoutpin[module_out],(Iout&0b10)>1);
//bitWrite(x, 0, 1);
}
} else {
for (module_out=0;module_out<out_modules;module_out++) {
//Serial.print(bitRead(output[module_out],(Iout>>2)));
digitalWrite(ihcoutpin[module_out],bitRead(output[module_out],(Iout>>2)));
}
}
}
else if (Iout<(17*4+2)) {
for (module_out=0;module_out<out_modules;module_out++) {
//Serial.print("_");
digitalWrite(ihcoutpin[module_out], LOW);
}
} else if (Iout<(25*4)) { //45*4
for (module_out=0;module_out<out_modules;module_out++) {
digitalWrite(ihcoutpin[module_out], HIGH);
//Serial.print("-");
}
} else {
Iout=-1;
//Serial.println("");
}
Iout++;
delay (250);
}