#define set1(r,b) r|=(1<<b)
#define set0(r,b) r&=~(1<<b)
#define test(r,b) (r&(1<<b))
int cislo = 0;
bool test = true;
void setup() {
set0(DDRD,4);
set1(PORTD,4);
set1(DDRC,0);
set1(DDRC,1);
set1(DDRC,2);
set1(DDRC,3);
set1(DDRC,4);
set1(DDRC,5);
set1(DDRD,5);
set0(PORTC,0);
set0(PORTC,1);
set0(PORTC,2);
set0(PORTC,3);
set0(PORTC,4);
set0(PORTC,5);
set0(PORTD,5);
}
void loop() {
if((test(PIND,4)==0) && test == true){
cislo = 1 + (rand() % 7);
test = false;
}else if((test(PIND,4)!=0) && test == false){
test = true;
}
switch(cislo)
{
case 0: set0(PORTC,0); set0(PORTC,1); set0(PORTC,2); set0(PORTC,3); set0(PORTC,4); set0(PORTC,5); set0(PORTD,5);break;
case 1: set0(PORTC,0); set0(PORTC,1); set0(PORTC,2); set0(PORTC,3); set1(PORTC,4); set0(PORTC,5); set0(PORTD,5);break;
case 2: set1(PORTC,0); set0(PORTC,1); set1(PORTC,2); set0(PORTC,3); set0(PORTC,4); set0(PORTC,5); set0(PORTD,5);break;
case 3: set0(PORTC,0); set1(PORTC,1); set0(PORTC,2); set1(PORTC,3); set1(PORTC,4); set0(PORTC,5); set0(PORTD,5);break;
case 4: set1(PORTC,0); set1(PORTC,1); set1(PORTC,2); set1(PORTC,3); set0(PORTC,4); set0(PORTC,5); set0(PORTD,5);break;
case 5: set1(PORTC,0); set1(PORTC,1); set1(PORTC,2); set1(PORTC,3); set1(PORTC,4); set0(PORTC,5); set0(PORTD,5);break;
case 6: set1(PORTC,0); set1(PORTC,1); set1(PORTC,2); set1(PORTC,3); set0(PORTC,4); set1(PORTC,5); set1(PORTD,5);break;
default: break;
}
}