Thanks.
This is what i've done. I didn't define the other pins as OUTPUT since there isn't in the pic code, should i ?
#include <EEPROM.h>
unsigned char val_GPIO;
unsigned char eeprom_id;
unsigned char counter_type;
int GP5 = 13;
int GP4 = 12;
int GP3 = 11;
int GP2 = 10;
int GP1 = 9;
int GP0 = 8;
void setup() {
// put your setup code here, to run once:
pinMode(GP2,OUTPUT);
counter_type = 3;
}
void loop() {
// put your main code here, to run repeatedly:
eeprom_id = EEPROM.read(0x00);
if(GP3==1) {
counter_type = 2;
}
if (eeprom_id >= counter_type) {
eeprom_id = 0;
}
else{
eeprom_id++;
}
EEPROM.write(0x00, eeprom_id);
delay(30);
switch(eeprom_id){
case 0:
//000000
//val_GPIO = 0x0;
digitalWrite(GP0, LOW);
digitalWrite(GP1, LOW);
digitalWrite(GP2, LOW);
digitalWrite(GP3, LOW);
digitalWrite(GP4, LOW);
digitalWrite(GP5, LOW);
break;
case 1:
//010001
// val_GPIO = 0x11; // GP0 & GP4 = HIGH
digitalWrite(GP0, HIGH);
digitalWrite(GP1, LOW);
digitalWrite(GP2, LOW);
digitalWrite(GP3, LOW);
digitalWrite(GP4, HIGH);
digitalWrite(GP5, LOW);
break;
case 2:
//100010
// val_GPIO = 0x22;
digitalWrite(GP0, LOW);
digitalWrite(GP1, HIGH);
digitalWrite(GP2, LOW);
digitalWrite(GP3, LOW);
digitalWrite(GP4, LOW);
digitalWrite(GP5, HIGH);
break;
case 3:
//110011
// val_GPIO = 0x33;
digitalWrite(GP0, HIGH);
digitalWrite(GP1, HIGH);
digitalWrite(GP2, LOW);
digitalWrite(GP3, LOW);
digitalWrite(GP4, HIGH);
digitalWrite(GP5, HIGH);
break;
}
pinMode(GP2, INPUT);
pinMode(GP3, INPUT);
}