Shahariar Hossain
/
FRDM-K82F_8x8LED_Matrix_nochip
Quick demo for LED 8x8 Matrix with FRDM-K82F
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 //