const char digitPatterns[10] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
// put your setup code here, to run once:
volatile char *direction_f,*output_f;
volatile char *direction_k,*input_k;
volatile long long i,j,k;
direction_k=0x107;
direction_f=0x30;
*direction_f=0xff;
*direction_k=0x00;
input_k=0x106;
output_f=0x31;
while(1){
volatile int trace=*input_k;
if(trace&0x01){
*output_f=digitPatterns[1];
}
else if(trace&0x02){
*output_f=digitPatterns[2];
}
else if(trace&0x04){
*output_f=digitPatterns[3];
}
else if(trace&0x08){
*output_f=digitPatterns[4];
}
else if(trace&0x10){
*output_f=digitPatterns[5];
}
else if(trace&0x20){
*output_f=digitPatterns[6];
}
else if(trace&0x40){
*output_f=digitPatterns[7];
}
else if(trace & 0x80){
*output_f=digitPatterns[8];
}
else {
*output_f=0x00;
}
for(long long i=0;i<200000;i++);
}
}
void loop() {
// put your main code here, to run repeatedly:
}