void setup() {
// put your setup code here, to run once:
volatile char *dirf,*dirl,row,charecter;
dirf=0x30;dirl=0x10a;
*dirf=0xff;*dirl=0xff;
volatile char *outf,*outl;
volatile long i;
// To rotate welome left to right 21 iterations required
volatile char a[]={0x00,0x00,0x00,0x05,0x07,0x05,0x00,0x00};
volatile char b[]={0x00,0x00,0x00,0x0a,0x0f,0x0a,0x00,0x00};
volatile char c[]={0x00,0x00,0x00,0x15,0x1f,0x15,0x00,0x00};
volatile char d[]={0x00,0x00,0x00,0x2b,0x3e,0x2a,0x00,0x00};
volatile char e[]={0x00,0x00,0x00,0x57,0x7e,0x55,0x00,0x00};
volatile char f[]={0x00,0x00,0x00,0xae,0xfb,0xaa,0x00,0x00};
volatile char g[]={0x00,0x00,0x00,0x5d,0xf6,0x55,0x00,0x00};
volatile char h[]={0x00,0x00,0x00,0xba,0xed,0xaa,0x00,0x00};
volatile char j[]={0x00,0x00,0x00,0x75,0xdb,0x55,0x00,0x00};
volatile char k[]={0x00,0x00,0x00,0xfa,0xb7,0xaa,0x00,0x00};
volatile char l[]={0x00,0x00,0x00,0x55,0x6f,0x55,0x00,0x00};
volatile char m[]={0x00,0x00,0x00,0xaa,0xdf,0xaa,0x00,0x00};
volatile char n[]={0x00,0x00,0x00,0x55,0xbf,0x55,0x00,0x00};
volatile char o[]={0x00,0x00,0x00,0xab,0x7e,0xaa,0x00,0x00};
volatile char p[]={0x00,0x00,0x00,0x56,0xfc,0x54,0x00,0x00};
volatile char q[]={0x00,0x00,0x00,0xac,0xf8,0xa8,0x00,0x00};
volatile char r[]={0x00,0x00,0x00,0x58,0xf0,0x50,0x00,0x00};
volatile char s[]={0x00,0x00,0x00,0xb0,0xe0,0xa0,0x00,0x00};
volatile char t[]={0x00,0x00,0x00,0x60,0xc0,0x40,0x00,0x00};
volatile char u[]={0x00,0x00,0x00,0xc0,0x80,0x80,0x00,0x00};
volatile char v[]={0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00};
outf=0x31;
outl=0x10b;
while(1){
for(charecter=0;charecter<21;charecter++){
for(row=0;row<8;row++){
if(charecter==0) *outf=a[row];
if(charecter==1) *outf=b[row];
if(charecter==2) *outf=c[row];
if(charecter==3) *outf=d[row];
if(charecter==4) *outf=e[row];
if(charecter==5) *outf=f[row];
if(charecter==6) *outf=g[row];
if(charecter==7) *outf=h[row];
if(charecter==8) *outf=j[row];
if(charecter==9) *outf=k[row];
if(charecter==10) *outf=l[row];
if(charecter==11) *outf=m[row];
if(charecter==12) *outf=n[row];
if(charecter==13) *outf=o[row];
if(charecter==14) *outf=p[row];
if(charecter==15) *outf=q[row];
if(charecter==16) *outf=r[row];
if(charecter==17) *outf=s[row];
if(charecter==18) *outf=t[row];
if(charecter==19) *outf=u[row];
if(charecter==20) *outf=v[row];
*outl=~(1<<row);
for (i = 0; i < 8000; i++); // Short delay to visualize the row
*outl=0xff;
*outf=0x00;
}
//for(i=0;i<300000;i++); // delay between each charecter
}
}
}
void loop() {
// put your main code here, to run repeatedly:
}