Shahariar Hossain
/
FRDM-K82F_8x8LED_Matrix_nochip
Quick demo for LED 8x8 Matrix with FRDM-K82F
Diff: Char_Fonts.cpp
- Revision:
- 2:4e21ea1275a1
- Child:
- 3:6cdeb3b19afb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Char_Fonts.cpp Sun Jun 03 01:14:51 2018 +0000 @@ -0,0 +1,846 @@ +/* + 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 //