Quick demo for LED 8x8 Matrix with FRDM-K82F

/media/uploads/suntopbd/img_20180523_081229.jpg

Char_Fonts.cpp

Committer:
suntopbd
Date:
2018-06-03
Revision:
2:4e21ea1275a1
Child:
3:6cdeb3b19afb

File content as of revision 2:4e21ea1275a1:

/*    
    C1 C2 C3 C4 C5 C6 C7 C8
R1   x  x  x  x  x  x  x  x
R2   x  x  x  x  x  x  x  x
R3   x  x  x  x  x  x  x  x
R4   x  x  x  x  x  x  x  x
R5   x  x  x  x  x  x  x  x
R6   x  x  x  x  x  x  x  x
R7   x  x  x  x  x  x  x  x
R8   x  x  x  x  x  x  x  x

*/
#include "mbed.h"
#include "Char_Fonts.h"

Timer timer;
float speed= 0.0;
float gaptime = 0.0;
int *dotpointer;
 
void speed_down(float spd)
{
 speed = spd;
}
void gap_up(float zzz)
{
gaptime = zzz;    
}
// Row Pins //
DigitalOut R1(PTC9);
DigitalOut R2(PTC8);
DigitalOut R3(PTC10);
DigitalOut R4(PTC11);
DigitalOut R5(PTA14);
DigitalOut R6(PTC7);
DigitalOut R7(PTA16);
DigitalOut R8(PTA15);

// Col Pins //
DigitalOut C1(PTD0);
DigitalOut C2(PTC12);
DigitalOut C3(PTB17);
DigitalOut C4(PTB16);
DigitalOut C5(PTA5);
DigitalOut C6(PTA13);
DigitalOut C7(PTA12);
DigitalOut C8(PTA17);



// 0 will glow LED and 1 will keep off //
// Use it to make Icon, Character, Symble //



int sp[64] = { 
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  1,1,1,1,1,1,1,1,
  
}; 



int Aa[64] = { 
  1,1,1,1,1,1,1,1,
  1,1,0,0,1,1,1,1,
  1,0,1,1,0,1,1,1,
  0,1,1,1,1,0,1,1,
  0,0,0,0,0,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  
};

int Bb[64] = { 
  1,1,1,1,1,1,1,1,
  0,0,0,0,0,1,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,0,0,0,0,1,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,0,0,0,0,1,1,1,
  
}; 

int Cc[64] = { 
  1,1,1,1,1,1,1,1,
  1,1,0,0,0,1,1,1,
  1,0,1,1,1,0,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  1,0,1,1,1,0,1,1,
  1,1,0,0,0,1,1,1,
  
};


int Dd[64] = { 
  1,1,1,1,1,1,1,1,
  0,0,0,0,1,1,1,1,
  0,1,1,1,0,1,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,0,1,1,1,
  0,0,0,0,1,1,1,1,
  
}; 


int Ee[64] = { 
  1,1,1,1,1,1,1,1,
  0,0,0,0,0,0,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,0,0,0,0,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,0,0,0,0,0,1,1,
  
}; 


int Ff[64] = { 
  1,1,1,1,1,1,1,1,
  0,0,0,0,0,0,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,0,0,0,0,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  
};


int Gg[64] = { 
  1,1,1,1,1,1,1,1,
  1,1,0,0,0,1,1,1,
  1,0,1,1,1,0,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,0,0,0,1,1,
  0,1,1,0,1,0,1,1,
  1,0,0,0,1,0,1,1,
  
};


int Hh[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,0,0,0,0,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  
};


int Ii[64] = { 
  1,1,1,1,1,1,1,1,
  1,1,0,0,0,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,0,0,0,1,1,1,
  
};


int Jj[64] = { 
  1,1,1,1,1,1,1,1,
  1,0,0,0,0,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  0,1,1,0,1,1,1,1,
  0,1,1,0,1,1,1,1,
  1,0,0,1,1,1,1,1,
  
};


int Kk[64] = { 
  0,1,1,1,0,1,1,1,
  0,1,1,0,1,1,1,1,
  0,1,0,1,1,1,1,1,
  0,0,1,1,1,1,1,1,
  0,1,0,1,1,1,1,1,
  0,1,1,0,1,1,1,1,
  0,1,1,1,0,1,1,1,
  0,1,1,1,1,0,1,1,
  
};


int Ll[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,0,0,0,0,0,0,1,
  
};

int Mm[64] = { 

  1,1,1,1,1,1,1,1,
  0,0,1,1,1,0,0,1,
  0,1,0,1,0,1,0,1,
  0,1,1,0,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
 
}; 


int Nn[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,1,0,1,
  0,0,1,1,1,1,0,1,
  0,1,0,1,1,1,0,1,
  0,1,1,0,1,1,0,1,
  0,1,1,1,0,1,0,1,
  0,1,1,1,1,0,0,1,
  0,1,1,1,1,1,0,1,
  
};

int Oo[64] = { 
  1,1,1,1,1,1,1,1,
  1,1,0,0,0,1,1,1,
  1,0,1,1,1,0,1,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  1,0,1,1,1,0,1,1,
  1,1,0,0,0,1,1,1,
  
}; 

int Pp[64] = { 
  1,1,1,1,1,1,1,1,
  0,0,0,0,0,1,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,0,0,0,0,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  
};


int Qq[64] = { 
  1,1,1,1,1,1,1,1,
  1,1,0,0,0,1,1,1,
  1,0,1,1,1,0,1,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,0,1,0,1,
  1,0,1,1,1,0,1,1,
  1,1,0,0,0,1,0,1,
}; 


int Rr[64] = { 
  1,1,1,1,1,1,1,1,
  0,0,0,0,1,1,1,1,
  0,1,1,1,0,1,1,1,
  0,1,1,1,0,1,1,1,
  0,0,0,0,1,1,1,1,
  0,1,0,1,1,1,1,1,
  0,1,1,0,1,1,1,1,
  0,1,1,1,0,1,1,1,
 
}; 


int Ss[64] = { 
  1,1,1,1,1,1,1,1,
  1,0,0,0,0,1,1,1,
  0,1,1,1,1,1,1,1,
  0,1,1,1,1,1,1,1,
  1,0,0,0,1,1,1,1,
  1,1,1,1,0,1,1,1,
  1,1,1,1,0,1,1,1,
  0,0,0,0,1,1,1,1,
  
  
};


int Tt[64] = { 
  1,1,1,1,1,1,1,1,
  0,0,0,0,0,0,0,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  
};


int Uu[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  0,1,1,1,1,0,1,1,
  1,0,0,0,0,1,1,1,
  
};


int Vv[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  1,0,1,1,1,0,1,1,
  1,1,0,1,0,1,1,1,
  1,1,1,0,1,1,1,1,
  
  
};


int Ww[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,1,1,1,0,1,
  0,1,1,0,1,1,0,1,
  0,1,0,1,0,1,0,1,
  1,0,1,1,1,0,1,1,
  
};


int Xx[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,1,0,1,
  1,0,1,1,1,0,1,1,
  1,1,0,1,0,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,0,1,0,1,1,1,
  1,0,1,1,1,0,1,1,
  0,1,1,1,1,1,0,1,
};


int Yy[64] = { 
  1,1,1,1,1,1,1,1,
  0,1,1,1,1,1,0,1,
  1,0,1,1,1,0,1,1,
  1,1,0,1,0,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,1,0,1,1,1,1,
  
};

int Zz[64] = { 

  1,1,1,1,1,1,1,1,
  0,0,0,0,0,0,0,1,
  1,1,1,1,1,0,1,1,
  1,1,1,1,0,1,1,1,
  1,1,1,0,1,1,1,1,
  1,1,0,1,1,1,1,1,
  1,0,1,1,1,1,1,1,
  0,0,0,0,0,0,0,1,
  
}; 







///////////////// CHAR on MATRIX APIs //////////////////

void A()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Aa[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void B()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Bb[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void C()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Cc[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}


void D()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Dd[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void E()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Ee[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void F()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Ff[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void G()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Gg[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void H()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Hh[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}


void I()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Ii[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void J()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Jj[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void K()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Kk[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void L()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Ll[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}


void M()
{   
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Mm[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}





void N()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Nn[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void O()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Oo[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void P()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Pp[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}


void Q()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Qq[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void R()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Rr[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void S()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Ss[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void T()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Tt[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void U()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Uu[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}


void V()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Vv[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void W()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Ww[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void X()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Xx[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}

void Y()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Yy[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}


void Z()
{   
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &Zz[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
    gap_space(gaptime);
}



void space()
{
    timer.start();   
    while (timer.read() < speed)// time of how long character will stay
    {
    dotpointer = &sp[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
}

void gap_space(float gt)

{
    timer.start();   
    while (timer.read() < gt)// time of how long character will stay
    {
    dotpointer = &sp[0];
    disp_page(dotpointer);
    disp_off();
    }
    timer.reset();
}
// End of Tasks //


// Functions Body //
void disp_off(void)
{
// for CC type    
C1 = 1; C2 = 1; C3 = 1; C4 = 1; C5 = 1; C6 = 1; C7 = 1; C8 = 1;    
// for CA 
//C1 = 0; C2 = 0; C3 = 0; C4 = 0; C5 = 0; C6 = 0; C7 = 0; C8 = 0;    
}

void disp_line(int r,int c1,int c2,int c3,int c4,int c5,int c6,int c7,int c8)
{
    disp_off();
    if(r==1) {R1=1;R2=0;R3=0;R4=0;R5=0;R6=0;R7=0;R8=0;}
    if(r==2) {R1=0;R2=1;R3=0;R4=0;R5=0;R6=0;R7=0;R8=0;}
    if(r==3) {R1=0;R2=0;R3=1;R4=0;R5=0;R6=0;R7=0;R8=0;}
    if(r==4) {R1=0;R2=0;R3=0;R4=1;R5=0;R6=0;R7=0;R8=0;}
    if(r==5) {R1=0;R2=0;R3=0;R4=0;R5=1;R6=0;R7=0;R8=0;}
    if(r==6) {R1=0;R2=0;R3=0;R4=0;R5=0;R6=1;R7=0;R8=0;}
    if(r==7) {R1=0;R2=0;R3=0;R4=0;R5=0;R6=0;R7=1;R8=0;}
    if(r==8) {R1=0;R2=0;R3=0;R4=0;R5=0;R6=0;R7=0;R8=1;}
    C1=c1;C2=c2;C3=c3;C4=c4; C5=c5;C6=c6;C7=c7;C8=c8;
}



void disp_page(int *dot)
{
  disp_line(1,*(dot+0) ,*(dot+1) ,*(dot+2) ,*(dot+3) ,*(dot+4) ,*(dot+5) ,*(dot+6) ,*(dot+7) );
  disp_line(2,*(dot+8) ,*(dot+9) ,*(dot+10),*(dot+11),*(dot+12),*(dot+13),*(dot+14),*(dot+15));
  disp_line(3,*(dot+16),*(dot+17),*(dot+18),*(dot+19),*(dot+20),*(dot+21),*(dot+22),*(dot+23));
  disp_line(4,*(dot+24),*(dot+25),*(dot+26),*(dot+27),*(dot+28),*(dot+29),*(dot+30),*(dot+31));
  disp_line(5,*(dot+32),*(dot+33),*(dot+34),*(dot+35),*(dot+36),*(dot+37),*(dot+38),*(dot+39));
  disp_line(6,*(dot+40),*(dot+41),*(dot+42),*(dot+43),*(dot+44),*(dot+45),*(dot+46),*(dot+47));
  disp_line(7,*(dot+48),*(dot+49),*(dot+50),*(dot+51),*(dot+52),*(dot+53),*(dot+54),*(dot+55));
  disp_line(8,*(dot+56),*(dot+57),*(dot+58),*(dot+59),*(dot+60),*(dot+61),*(dot+62),*(dot+63));

}

// End of Functions //