#define DELAY 1000
#define disOFF 0x00
#define ddisnum0 0x3f//dd with dot
#define ddisnum1 0x06
#define ddisnum2 0x5b
#define ddisnum3 0x4f
#define ddisnum4 0x66
#define ddisnum5 0x4d
#define ddisnum6 0x7d
#define ddisnum7 0x07
#define ddisnum8 0x7f
#define ddisnum9 0x6f
#define disnum0 0xbf//d without dot
#define disnum1 0x86
#define disnum2 0xdb
#define disnum3 0xcf
#define disnum4 0xe6
#define disnum5 0xed
#define disnum6 0xfd
#define disnum7 0x87
#define disnum8 0xff
#define disnum9 0xef
volatile char disnum[11] = {disnum0, disnum1, disnum2, disnum3, disnum4, disnum5,
disnum6, disnum7, disnum8, disnum9};
volatile char ddisnum[11] = {ddisnum0, ddisnum1, ddisnum2, ddisnum3, ddisnum4, ddisnum5,
ddisnum6, ddisnum7, ddisnum8, ddisnum9};
void zero_99();
volatile char numtovoltage(volatile long num);
void setup() {
volatile char *dirf,*dirk;
dirf =(volatile char*)0x30;
*dirf = 0xff;
dirk =(volatile char*)0x107;
*dirk = 0xff;
}
void loop() {
//0 to 99 counter
zero_99();
}
volatile char numtovoltage(volatile long num){
switch(num){
case 1:
return 0x86;
break;
case 2:
return 0xdb;
break;
case 3:
return 0xcf;
break;
case 4:
return 0xed;
break;
case 5:
return 0xed;
break;
case 6:
return 0xfd;
break;
case 7:
return 0x87;
break;
case 8:
return 0xff;
break;
case 9:
return 0xef;
break;
default:
return 0xbf;
break;
}
}
void zero_99(){
volatile char *outf,*outk,i,num;
outf = (volatile char*)0x31;
outk =(volatile char*) 0x108;
for( i =99; i>=0;i--){
*outf = disnum[i/10];
*outk = disnum[i%10];
delay(DELAY);
}
}