#define Delay 900000
unsigned char a[8];
void setup() {
// put your setup code here, to run once:
volatile unsigned char *col=(unsigned char*)0x30;
volatile unsigned char *row=(unsigned char*)0x107;
*row=0xFF;
*col=0xFF;
}
void lightRow(unsigned char row_numb){
volatile unsigned char *row=(unsigned char*)0x108;
volatile unsigned char *col=(unsigned char*)0x31;
*row=~(1<<row_numb);
*col=0xFF;
}
void lightCol(unsigned char col_numb){
volatile unsigned char *col=(unsigned char*)0x31;
volatile unsigned char *row=(unsigned char*)0x108;
*row=~(0xFF);
*col=(1<<col_numb);
}
void lightLED(unsigned char col_numb,unsigned char row_numb){
volatile unsigned char *row=0x108,*col=0x31;
*row=0xFF;
*col=0x00;
*row=~(1<<row_numb);
*col=(1<<col_numb);
}
unsigned char* ledLetter(unsigned char x){
switch(x){
case 'A':{
a[0]=0x3c;a[1]=0x7e;a[2]=0x66;a[3]=0x66;a[4]=0x7E;a[5]=0x66;a[6]=0x66;a[7]=0x66;
break;
}
case 'B':{
a[0]=0x7C;a[1]=0x62;a[2]=0x62;a[3]=0x7c;a[4]=0x7c;a[5]=0x62;a[6]=0x62;a[7]=0x7c;
break;
}
case '$':{
a[0]=0x3c;a[1]=0xdb;a[2]=0x1b;a[3]=0xff;a[4]=0xff;a[5]=0xd8;a[6]=0xdb;a[7]=0x3c;
}
}
return a;
}
void displayLetter(unsigned char x){
volatile unsigned char *col=(unsigned char*)0x31;
volatile unsigned char *row=(unsigned char*)0x108;
unsigned char *a=ledLetter(x);
for(unsigned char i=0;i<8;i++){
*col=0x00;
*row=~(1<<i);
*col=a[i];
}
}
void loop() {
// put your main code here, to run repeatedly:
unsigned char row=0x00,col=0x00;
volatile long i;
displayLetter('$');
}