LEDmatrix
Dependencies: mbed
led_func.h@0:ddaa166a52da, 2018-09-01 (annotated)
- Committer:
- Yuto_K
- Date:
- Sat Sep 01 09:48:17 2018 +0000
- Revision:
- 0:ddaa166a52da
LEDmatrix
Who changed what in which revision?
User | Revision | Line number | New 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 | };*/ |