void setup() {
// put your setup code here, to run once:
volatile char *dir,*porta,*portc,*portf,*portk;
dir = 0x21;
*dir = 0xff;
dir = 0x27;
*dir = 0xff;
dir = 0x30;
*dir = 0x00;
dir = 0x107;
*dir = 0x0f;
porta = 0x22;
portc = 0x28;
portf = 0x2f;
portk = 0x108;
char val[][3] = {{0x06,0x5b,0x4f},{0x66,0x6d,0x7d},{0x07,0x7f,0x6f}};
char pos;
while(1)
{
for(int j = 0 ;j < 3;j++)
{
// *portk = 1 << j;
if((*portf & 0x0f) != 0)
{
if((*portf & 0x0f) == 0x01)
pos = 0;
else if((*portf & 0x0f) == 0x02)
pos = 1;
else if((*portf & 0x0f) == 0x04)
pos = 2;
for(volatile long i = 0;i<40000;i++)
{
*portc = 0xfe;
*porta =0x3f;
*porta = 0x00;
*portc = 0xfd;
*porta = val[j][pos];
*porta = 0x00;
}
delay(100);
}
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}