/*
• Mikrokontroler generira naključna števila od 0 do vključno 4; uporabi tudi funkcijo randomSeed(). Naključno število se generira samo enkrat in sicer ob zagonu mikrokrmilnika.
• Generirana vrednost naj se izpiše na LED prikazovalniku, ki je priključen na pine PORTA D (PD0 do PD6).
• S pomočjo tipke, ki je priključena na PORT B (PD8), generirano vrednost z vsakim pritiskom na tipko povečamo za 1. Število lahko povečujemo do vrednosti 9. Nova vrednost se izpiše na LED prikazovalniku. S tipko, ki je priključena na PD7 pa vrednost ponastavimo na nič.
• Nalogo reši s pomočjo registrov.
*/
// x a b c d e f g
// 1: 0 0 1 1 0 0 0 0
// 2: 0 1 1 0 1 1 0 1
// 3: 0 1 1 1 1 0 0 1
// 4: 0 0 1 1 0 0 1 1
// 5: 0 1 0 1 1 0 1 1
// 6: 0 1 0 1 1 1 1 1
// 7: 0 1 1 1 0 0 0 0
// 8: 0 1 1 1 1 1 1 1
// 9: 0 1 1 1 1 0 1 1
int digit[] = {0x30, 0x6D, 0x79, 0x33, 0x5B, 0x5F, 0x70, 0x7F, 0x7B};
int count;
void setup() {
/*Serial.begin(115200);
randomSeed(analogRead(A0));
int x = random(1,5);
Serial.println(x);*/
pinMode(8, INPUT_PULLUP);
for(int x = 0; x < 8;x++){
pinMode(x, OUTPUT);
}
randomSeed(analogRead(A0));
count = random(1, 5);
}
void loop() {
int k = digit[count];
if(digitalRead(8) == LOW && count < 9){
count++;
delay(300);
}
for(int x = 0; x < 8; x++){
int temp = k & 0x01;
digitalWrite(x, temp);
k >>= 1;
}
}