#include "sevenSeg.h"
void setup() {
// put your setup code here, to run once:
// put your setup code here, to run once:
volatile char *DDR_F, *DDR_K, *PORT_F, *PORT_K, *PIN_K, x, j, k = 0, i = 0;
//configure address
DDR_F = 0x30;
DDR_K = 0x107;
PORT_F = 0x31;
PORT_K = 0x108;
PIN_K = 0x106;
// setting direction of bth port
*DDR_F = 0x01;
*DDR_K = 0x00;
*PORT_F = 0x00;
dispSevSeg(PORT_F, 0);
while (1) {
x = *PIN_K;
if ((x & 0x01) == 0x01) {
j = 1;
k += j;
dispSevSeg(PORT_F, j);
delay(450);
i++;
}
if ((x & 0x02) == 0x02) {
j = 2;
k += j;
dispSevSeg(PORT_F, j);
delay(450);
i++;
}
if ((x & 0x04) == 0x04) {
j = 3;
k += j;
dispSevSeg(PORT_F, j);
delay(450);
i++;
}
if ((x & 0x08) == 0x08) {
j = 4;
k += j;
dispSevSeg(PORT_F, j);
delay(450);
i++;
}
if (i == 4) {
dispSevSeg(PORT_F, k);
delay(450);
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}
/*
if ((x & 0x01) == 0x01) {
j = 1;
} if ((x & 0x02) == 0x02) {
j = 2;
} if ((x & 0x04) == 0x04) {
j = 3;
} if ((x & 0x08) == 0x08) {
j = 4;
} if ((x & 0x10) == 0x10) {
j = 5;
} if ((x & 0x20) == 0x20) {
j = 6;
} if ((x & 0x40) == 0x40) {
j = 7;
} if ((x & 0x80) == 0x80) {
j = 8;
}
if (j != 0) {
for (j; j < 10; j++) {
dispSevSeg(PORT_F, j);
delay(270);
}
}
if ((x & 0x40) == 0x40) {
while (j < 10) {
dispSevSeg(PORT_F, j);
delay(450);
j++;
}
while (j >= 0) {
dispSevSeg(PORT_F, j);
delay(450);
j--;
}
break;
}
if ((x & 0x01) == 0x01) {
//for (i = 0; i < 5000; i++);
j++;
dispSevSeg(PORT_F, j);
delay(450);
}
if ((x & 0x02) == 0x02) {
//for (i = 0; i < 5000; i++);
j--;
dispSevSeg(PORT_F, j);
delay(450);
}
j = 0;
dispSevSeg(PORT_F, j);
if ((x & 0x01) == 0x01) {
k = 0;
}
while (j < 10 && k == 0) {
//for (i = 0; i < 5000; i++);
if ((x & 0x02) == 0x02) {
k = 1;
break;
} else {
dispSevSeg(PORT_F, j);
delay(270);
j++;
}
*/