void setup() {
// put your setup code here, to run once:
volatile char *dirf, *dirk;
dirf = 0x30; dirk = 0x107;
*dirf = 0xFF; *dirk = 0x00;
volatile long i, j;
volatile char *outf, *ink, x, y, count=0, num=0, sum=0, rem=0, num1=0, sum1=0, rem1=0;
outf = 0x31; ink = 0x106;
while(1)
{
x = *ink;
if((x & 0x01)==0x01)
{
num = 1000;
count++;
}
else if((x & 0x02)==0x02)
{
num = 2000;
count++;
}
else if((x & 0x04)==0x04)
{
num = 3000;
count++;
}
else if((x & 0x08)==0x08)
{
num = 4000;
count++;
}
else if((x & 0x10)==0x10)
{
num = 5000;
count++;
}
else if((x & 0x20)==0x20)
{
num = 6000;
count++;
}
else if((x & 0x40)==0x40)
{
num = 7000;
count++;
}
else if((x & 0x80)==0x80)
{
num = 8000;
count++;
}
if(count==1)
{
if((x & 0x01)==0x01)
{
num = num+100;
count++;
}
else if((x & 0x02)==0x02)
{
num = num+200;
count++;
}
else if((x & 0x04)==0x04)
{
num = num+300;
count++;
}
else if((x & 0x08)==0x08)
{
num = num+400;
count++;
}
else if((x & 0x10)==0x10)
{
num = num+500;
count++;
}
else if((x & 0x20)==0x20)
{
num = num+600;
count++;
}
else if((x & 0x40)==0x40)
{
num = num+700;
count++;
}
else if((x & 0x80)==0x80)
{
num = num+800;
count++;
}
}
if(count==2)
{
if((x & 0x01)==0x01)
{
num = num+10;
count++;
}
else if((x & 0x02)==0x02)
{
num = num+20;
count++;
}
else if((x & 0x04)==0x04)
{
num = num+30;
count++;
}
else if((x & 0x08)==0x08)
{
num = num+40;
count++;
}
else if((x & 0x10)==0x10)
{
num = num+50;
count++;
}
else if((x & 0x20)==0x20)
{
num = num+60;
count++;
}
else if((x & 0x40)==0x40)
{
num = num+70;
count++;
}
else if((x & 0x80)==0x80)
{
num = num+80;
count++;
}
}
if(count==3)
{
if((x & 0x01)==0x01)
{
num = num+1;
count++;
}
else if((x & 0x02)==0x02)
{
num = num+2;
count++;
}
else if((x & 0x04)==0x04)
{
num = num+3;
count++;
}
else if((x & 0x08)==0x08)
{
num = num+4;
count++;
}
else if((x & 0x10)==0x10)
{
num = num+5;
count++;
}
else if((x & 0x20)==0x20)
{
num = num+6;
count++;
}
else if((x & 0x40)==0x40)
{
num = num+7;
count++;
}
else if((x & 0x80)==0x80)
{
num = num+8;
count++;
}
}
//if(count==4)
//{
// x=0x00;
//}
for(i=0; i<4; i++)
{
rem = num%10;
num = num/10;
sum = sum + rem;
}
if(sum>9)
{
for(j=0; j<2; j++)
{
rem1 = sum%10;
sum = sum/10;
sum1 = sum1+rem1;
}
}
switch(sum1)
{
case 0:
*outf = 0x3F;
break;
case 1:
*outf = 0x06;
break;
case 2:
*outf = 0x5B;
break;
case 3:
*outf = 0x4F;
break;
case 4:
*outf = 0x66;
break;
case 5:
*outf = 0x6D;
case 6:
*outf = 0x7D;
break;
case 7:
*outf = 0x07;
break;
case 8:
*outf = 0x7F;
break;
case 9:
*outf = 0x6F;
break;
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}