LEDmatrix

Dependencies:   mbed

Committer:
Yuto_K
Date:
Sat Sep 01 09:48:17 2018 +0000
Revision:
0:ddaa166a52da
LEDmatrix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Yuto_K 0:ddaa166a52da 1 #include "necleo_pin.h"
Yuto_K 0:ddaa166a52da 2
Yuto_K 0:ddaa166a52da 3 #define L 0
Yuto_K 0:ddaa166a52da 4 #define H 1
Yuto_K 0:ddaa166a52da 5
Yuto_K 0:ddaa166a52da 6 #define R 0
Yuto_K 0:ddaa166a52da 7 #define G 1
Yuto_K 0:ddaa166a52da 8 #define B 2
Yuto_K 0:ddaa166a52da 9
Yuto_K 0:ddaa166a52da 10 class Dot{
Yuto_K 0:ddaa166a52da 11 public:
Yuto_K 0:ddaa166a52da 12 bool red;
Yuto_K 0:ddaa166a52da 13 bool green;
Yuto_K 0:ddaa166a52da 14 bool blue;
Yuto_K 0:ddaa166a52da 15 };
Yuto_K 0:ddaa166a52da 16
Yuto_K 0:ddaa166a52da 17 Dot led_board[16][16];
Yuto_K 0:ddaa166a52da 18
Yuto_K 0:ddaa166a52da 19 void ResetBoard(){
Yuto_K 0:ddaa166a52da 20 for(char i=0;i<16;i++){
Yuto_K 0:ddaa166a52da 21 for(char j=0;j<16;j++){
Yuto_K 0:ddaa166a52da 22 led_board[i][j].red=false;
Yuto_K 0:ddaa166a52da 23 led_board[i][j].green=false;
Yuto_K 0:ddaa166a52da 24 led_board[i][j].blue=false;
Yuto_K 0:ddaa166a52da 25 }
Yuto_K 0:ddaa166a52da 26 }
Yuto_K 0:ddaa166a52da 27 }
Yuto_K 0:ddaa166a52da 28
Yuto_K 0:ddaa166a52da 29 void PrintBoard(){
Yuto_K 0:ddaa166a52da 30 CLK=0;
Yuto_K 0:ddaa166a52da 31 LAT=0;
Yuto_K 0:ddaa166a52da 32 for(char i=0;i<4;i++){
Yuto_K 0:ddaa166a52da 33 OE=H;
Yuto_K 0:ddaa166a52da 34 Address=i;
Yuto_K 0:ddaa166a52da 35 for(char j=0;j<32;j++){
Yuto_K 0:ddaa166a52da 36 if(i<16){
Yuto_K 0:ddaa166a52da 37 Red1=led_board[i][j].red;
Yuto_K 0:ddaa166a52da 38 Green1=led_board[i][j].green;
Yuto_K 0:ddaa166a52da 39 Blue1=led_board[i][j].blue;
Yuto_K 0:ddaa166a52da 40 Red2=led_board[i+8][j].red;
Yuto_K 0:ddaa166a52da 41 Green2=led_board[i+8][j].green;
Yuto_K 0:ddaa166a52da 42 Blue2=led_board[i+8][j].blue;
Yuto_K 0:ddaa166a52da 43 }else{
Yuto_K 0:ddaa166a52da 44 Red1=led_board[i+4][j-16].red;
Yuto_K 0:ddaa166a52da 45 Green1=led_board[i+4][j-16].green;
Yuto_K 0:ddaa166a52da 46 Blue1=led_board[i+4][j-16].blue;
Yuto_K 0:ddaa166a52da 47 Red2=led_board[i+12][j-16].red;
Yuto_K 0:ddaa166a52da 48 Green2=led_board[i+12][j-16].green;
Yuto_K 0:ddaa166a52da 49 Blue2=led_board[i+12][j-16].blue;
Yuto_K 0:ddaa166a52da 50 }
Yuto_K 0:ddaa166a52da 51 wait_us(10);
Yuto_K 0:ddaa166a52da 52 CLK=H;
Yuto_K 0:ddaa166a52da 53 wait_us(10);
Yuto_K 0:ddaa166a52da 54 CLK=L;
Yuto_K 0:ddaa166a52da 55 }
Yuto_K 0:ddaa166a52da 56 wait_us(10);
Yuto_K 0:ddaa166a52da 57 LAT=H;
Yuto_K 0:ddaa166a52da 58 wait_us(10);
Yuto_K 0:ddaa166a52da 59 LAT=L;
Yuto_K 0:ddaa166a52da 60 OE=L;
Yuto_K 0:ddaa166a52da 61 wait_us(100);
Yuto_K 0:ddaa166a52da 62 }
Yuto_K 0:ddaa166a52da 63 }
Yuto_K 0:ddaa166a52da 64 /*class LED{
Yuto_K 0:ddaa166a52da 65 public:
Yuto_K 0:ddaa166a52da 66 char led_board[16][16];
Yuto_K 0:ddaa166a52da 67 void ResetBoard(){
Yuto_K 0:ddaa166a52da 68 for(char i=0;i<16;i++){
Yuto_K 0:ddaa166a52da 69 for(char j=0;j<16;j++){
Yuto_K 0:ddaa166a52da 70 this->led_board[i][j]=1;
Yuto_K 0:ddaa166a52da 71 }
Yuto_K 0:ddaa166a52da 72 }
Yuto_K 0:ddaa166a52da 73 }
Yuto_K 0:ddaa166a52da 74 void ResetPin(){
Yuto_K 0:ddaa166a52da 75 Address=0;
Yuto_K 0:ddaa166a52da 76 OE=H;
Yuto_K 0:ddaa166a52da 77 CLK=L;
Yuto_K 0:ddaa166a52da 78 LAT=L;
Yuto_K 0:ddaa166a52da 79 }
Yuto_K 0:ddaa166a52da 80 void PrintLine(char board[16][16],char line){
Yuto_K 0:ddaa166a52da 81 this->ResetPin();
Yuto_K 0:ddaa166a52da 82 Address=line;
Yuto_K 0:ddaa166a52da 83 for(char i=0;i<32;i++){
Yuto_K 0:ddaa166a52da 84 if(i<16){
Yuto_K 0:ddaa166a52da 85 Red1=board[line][i]&R;
Yuto_K 0:ddaa166a52da 86 Green1=board[line][i]&G;
Yuto_K 0:ddaa166a52da 87 Blue1=board[line][i]&B;
Yuto_K 0:ddaa166a52da 88 Red2=board[line+8][i]&R;
Yuto_K 0:ddaa166a52da 89 Green2=board[line+8][i]&G;
Yuto_K 0:ddaa166a52da 90 Blue2=board[line+8][i]&B;
Yuto_K 0:ddaa166a52da 91 }else{
Yuto_K 0:ddaa166a52da 92 Red1=board[line+4][i-16]&R;
Yuto_K 0:ddaa166a52da 93 Green1=board[line+4][i-16]&G;
Yuto_K 0:ddaa166a52da 94 Blue1=board[line+4][i-16]&B;
Yuto_K 0:ddaa166a52da 95 Red2=board[line+12][i-16]&R;
Yuto_K 0:ddaa166a52da 96 Green2=board[line+12][i-16]&G;
Yuto_K 0:ddaa166a52da 97 Blue2=board[line+12][i-16]&B;
Yuto_K 0:ddaa166a52da 98 }
Yuto_K 0:ddaa166a52da 99 CLK=H;
Yuto_K 0:ddaa166a52da 100 CLK=L;
Yuto_K 0:ddaa166a52da 101 }
Yuto_K 0:ddaa166a52da 102 LAT=H;
Yuto_K 0:ddaa166a52da 103 LAT=L;
Yuto_K 0:ddaa166a52da 104 OE=L;
Yuto_K 0:ddaa166a52da 105 }
Yuto_K 0:ddaa166a52da 106 void PrintBoard(){
Yuto_K 0:ddaa166a52da 107 for(char i=0;i<4;i++){
Yuto_K 0:ddaa166a52da 108 PrintLine(this->led_board,i);
Yuto_K 0:ddaa166a52da 109 wait_us(100);
Yuto_K 0:ddaa166a52da 110 }
Yuto_K 0:ddaa166a52da 111 }
Yuto_K 0:ddaa166a52da 112 };*/