Shahariar Hossain
/
FRDM-K82F_8x8LED_Matrix_nochip
Quick demo for LED 8x8 Matrix with FRDM-K82F
Diff: main.cpp
- Revision:
- 0:b16b3c2d882e
- Child:
- 1:1088a4658fc2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed May 23 01:37:47 2018 +0000 @@ -0,0 +1,137 @@ +// copyleft by suntopbd 23.5.18 +/* +PINOUT +https://os.mbed.com/platforms/FRDM-K82F/#board-pinout +should work with any other board with 16 I/O available + + 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" + +// 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); + +// func declearation // + +void disp_off(void); +void disp_line(int,int,int,int,int,int,int,int,int); +void disp_page(int*); + + +int *dotpointer; + +// 0 will glow LED and 1 will keep off // +// Use it to make Icon, Character, Symble // +int canvas[64] = { + + 0,1,1,1,1,1,1,0, + 1,1,0,1,1,0,1,1, + 1,0,1,1,1,1,0,1, + 1,1,1,0,0,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, + 0,1,1,1,1,1,1,0, + +}; + +EventQueue refresh_disp; +void update_disp(); + + +int main() { +// SETUP // + disp_off(); + refresh_disp.call_every(.5, update_disp); + refresh_disp.dispatch(); + +// END OF SETUP // + + +// LOOP // + while (1) + { + } +// END OF LOOP // +} + +//..........................................// + + +// MBED OS Tasks // +void update_disp() +{ + dotpointer = &canvas[0]; + disp_page(dotpointer); + disp_off(); + +} + +// 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 //