int Iout;
int Iout2;
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/Oout_modules
//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=0;
Iout=0;
}
//PORTB = PORTB | B00100000;
//PORTB = PORTB & B11011111;
void loop() {
// put your main code here, to run repeatedly:
if ((Iout&0b11)==3) { //elke 3de tick wijziging
Iout2=Iout>>2;
if (Iout2<68) { //4*17 De 16 Normale pulsen + checkbit
if ((Iout2&0b11)<3) {
for (module_out=0;module_out<out_modules;module_out++) {
Serial.print((Iout2&0b10)>1);
digitalWrite(ihcoutpin[module_out],(Iout2&0b10)>1);
//bitWrite(x, 0, 1);
}
} else {
for (module_out=0;module_out<out_modules;module_out++) {
Serial.print(">"); Serial.print(bitRead(output[module_out],(Iout2>>2)));
digitalWrite(ihcoutpin[module_out],bitRead(output[module_out],(Iout2>>2)));
}
}
}
else if (Iout2<70) { //17*4+2
for (module_out=0;module_out<out_modules;module_out++) {
Serial.print("_");
digitalWrite(ihcoutpin[module_out], LOW);
}
} else if (Iout2<180) { //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 (50);
}