LEDmatrix
Dependencies: mbed
main.cpp@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 "led_func.h" |
Yuto_K | 0:ddaa166a52da | 2 | |
Yuto_K | 0:ddaa166a52da | 3 | /*int main(){ |
Yuto_K | 0:ddaa166a52da | 4 | while(1){ |
Yuto_K | 0:ddaa166a52da | 5 | myLED=L; |
Yuto_K | 0:ddaa166a52da | 6 | CLK=L; |
Yuto_K | 0:ddaa166a52da | 7 | LAT=L; |
Yuto_K | 0:ddaa166a52da | 8 | Address=0; |
Yuto_K | 0:ddaa166a52da | 9 | wait(0.1); |
Yuto_K | 0:ddaa166a52da | 10 | for(char i=0;i<1;i++){ |
Yuto_K | 0:ddaa166a52da | 11 | CLK=H; |
Yuto_K | 0:ddaa166a52da | 12 | wait(0.1); |
Yuto_K | 0:ddaa166a52da | 13 | CLK=L; |
Yuto_K | 0:ddaa166a52da | 14 | wait(0.1); |
Yuto_K | 0:ddaa166a52da | 15 | Red1=1; |
Yuto_K | 0:ddaa166a52da | 16 | wait(0.1); |
Yuto_K | 0:ddaa166a52da | 17 | } |
Yuto_K | 0:ddaa166a52da | 18 | LAT=H; |
Yuto_K | 0:ddaa166a52da | 19 | wait(0.1); |
Yuto_K | 0:ddaa166a52da | 20 | LAT=L; |
Yuto_K | 0:ddaa166a52da | 21 | wait(0.1); |
Yuto_K | 0:ddaa166a52da | 22 | OE=L; |
Yuto_K | 0:ddaa166a52da | 23 | myLED=H; |
Yuto_K | 0:ddaa166a52da | 24 | wait(0.1); |
Yuto_K | 0:ddaa166a52da | 25 | } |
Yuto_K | 0:ddaa166a52da | 26 | }*/ |
Yuto_K | 0:ddaa166a52da | 27 | |
Yuto_K | 0:ddaa166a52da | 28 | int main(){ |
Yuto_K | 0:ddaa166a52da | 29 | ResetBoard(); |
Yuto_K | 0:ddaa166a52da | 30 | for(char i=0;i<16;i++){ |
Yuto_K | 0:ddaa166a52da | 31 | for(char j=0;j<8;j++){ |
Yuto_K | 0:ddaa166a52da | 32 | led_board[i][j].blue=true; |
Yuto_K | 0:ddaa166a52da | 33 | } |
Yuto_K | 0:ddaa166a52da | 34 | } |
Yuto_K | 0:ddaa166a52da | 35 | while(1){ |
Yuto_K | 0:ddaa166a52da | 36 | PrintBoard(); |
Yuto_K | 0:ddaa166a52da | 37 | } |
Yuto_K | 0:ddaa166a52da | 38 | } |
Yuto_K | 0:ddaa166a52da | 39 | |
Yuto_K | 0:ddaa166a52da | 40 | /*int main(){ |
Yuto_K | 0:ddaa166a52da | 41 | LED LedBoard; |
Yuto_K | 0:ddaa166a52da | 42 | LedBoard.ResetBoard(); |
Yuto_K | 0:ddaa166a52da | 43 | char test[16][16]={{0,1,2,4,3,5,6,7,0,0,0,0,0,0,0,0}}; |
Yuto_K | 0:ddaa166a52da | 44 | LedBoard.led_board[0][0]=B; |
Yuto_K | 0:ddaa166a52da | 45 | while(1){ |
Yuto_K | 0:ddaa166a52da | 46 | LedBoard.PrintBoard(); |
Yuto_K | 0:ddaa166a52da | 47 | } |
Yuto_K | 0:ddaa166a52da | 48 | }*/ |
Yuto_K | 0:ddaa166a52da | 49 | /*char k=0; |
Yuto_K | 0:ddaa166a52da | 50 | |
Yuto_K | 0:ddaa166a52da | 51 | void Init(){ |
Yuto_K | 0:ddaa166a52da | 52 | OE=1; |
Yuto_K | 0:ddaa166a52da | 53 | Address=0; |
Yuto_K | 0:ddaa166a52da | 54 | CLK=0; |
Yuto_K | 0:ddaa166a52da | 55 | LAT=0; |
Yuto_K | 0:ddaa166a52da | 56 | } |
Yuto_K | 0:ddaa166a52da | 57 | |
Yuto_K | 0:ddaa166a52da | 58 | void WriteLine(uint8_t line){ |
Yuto_K | 0:ddaa166a52da | 59 | Init(); |
Yuto_K | 0:ddaa166a52da | 60 | OE=1; |
Yuto_K | 0:ddaa166a52da | 61 | Red1=1; |
Yuto_K | 0:ddaa166a52da | 62 | Green1=0; |
Yuto_K | 0:ddaa166a52da | 63 | Blue1=0; |
Yuto_K | 0:ddaa166a52da | 64 | Red2=1; |
Yuto_K | 0:ddaa166a52da | 65 | Green2=0; |
Yuto_K | 0:ddaa166a52da | 66 | Blue2=0; |
Yuto_K | 0:ddaa166a52da | 67 | Address=line; |
Yuto_K | 0:ddaa166a52da | 68 | for(int j=0;j<32;j++){ |
Yuto_K | 0:ddaa166a52da | 69 | if(line==3&&j==31)Blue1=1; |
Yuto_K | 0:ddaa166a52da | 70 | CLK=1; |
Yuto_K | 0:ddaa166a52da | 71 | CLK=0; |
Yuto_K | 0:ddaa166a52da | 72 | } |
Yuto_K | 0:ddaa166a52da | 73 | LAT=1; |
Yuto_K | 0:ddaa166a52da | 74 | LAT=0; |
Yuto_K | 0:ddaa166a52da | 75 | OE=0; |
Yuto_K | 0:ddaa166a52da | 76 | } |
Yuto_K | 0:ddaa166a52da | 77 | |
Yuto_K | 0:ddaa166a52da | 78 | int main(){ |
Yuto_K | 0:ddaa166a52da | 79 | while(1){ |
Yuto_K | 0:ddaa166a52da | 80 | for(int i=0;i<4;i++){ |
Yuto_K | 0:ddaa166a52da | 81 | WriteLine(i); |
Yuto_K | 0:ddaa166a52da | 82 | wait_us(100); |
Yuto_K | 0:ddaa166a52da | 83 | } |
Yuto_K | 0:ddaa166a52da | 84 | } |
Yuto_K | 0:ddaa166a52da | 85 | }*/ |
Yuto_K | 0:ddaa166a52da | 86 | /*BusOut pin(PC_7,PB_6,PA_7);//9 DS(データ),10 ST_CP(ラッチ),11 SH_CP(クロック) |
Yuto_K | 0:ddaa166a52da | 87 | DigitalOut datapin(PC_7);//9 DS |
Yuto_K | 0:ddaa166a52da | 88 | DigitalOut latchpin(PB_6);//10 ST_CP |
Yuto_K | 0:ddaa166a52da | 89 | DigitalOut clockpin(PA_7);//11 SH_CP |
Yuto_K | 0:ddaa166a52da | 90 | |
Yuto_K | 0:ddaa166a52da | 91 | uint8_t datared; |
Yuto_K | 0:ddaa166a52da | 92 | uint8_t datagreen; |
Yuto_K | 0:ddaa166a52da | 93 | uint8_t datablue; |
Yuto_K | 0:ddaa166a52da | 94 | uint8_t dataarrayred[10]; |
Yuto_K | 0:ddaa166a52da | 95 | uint8_t dataarraygreen[10]; |
Yuto_K | 0:ddaa166a52da | 96 | uint8_t dataarrayblue[10]; |
Yuto_K | 0:ddaa166a52da | 97 | |
Yuto_K | 0:ddaa166a52da | 98 | void setup(){ |
Yuto_K | 0:ddaa166a52da | 99 | dataarrayred[0]=0xff; |
Yuto_K | 0:ddaa166a52da | 100 | dataarrayred[1]=0xfe; |
Yuto_K | 0:ddaa166a52da | 101 | dataarrayred[2]=0xfc; |
Yuto_K | 0:ddaa166a52da | 102 | dataarrayred[3]=0xf8; |
Yuto_K | 0:ddaa166a52da | 103 | dataarrayred[4]=0xf0; |
Yuto_K | 0:ddaa166a52da | 104 | dataarrayred[5]=0xe0; |
Yuto_K | 0:ddaa166a52da | 105 | dataarrayred[6]=0xc0; |
Yuto_K | 0:ddaa166a52da | 106 | dataarrayred[7]=0x80; |
Yuto_K | 0:ddaa166a52da | 107 | dataarrayred[8]=0x00; |
Yuto_K | 0:ddaa166a52da | 108 | |
Yuto_K | 0:ddaa166a52da | 109 | dataarraygreen[0]=0xff; |
Yuto_K | 0:ddaa166a52da | 110 | dataarraygreen[1]=0xfe; |
Yuto_K | 0:ddaa166a52da | 111 | dataarraygreen[2]=0xfc; |
Yuto_K | 0:ddaa166a52da | 112 | dataarraygreen[3]=0xf8; |
Yuto_K | 0:ddaa166a52da | 113 | dataarraygreen[4]=0xf0; |
Yuto_K | 0:ddaa166a52da | 114 | dataarraygreen[5]=0xe0; |
Yuto_K | 0:ddaa166a52da | 115 | dataarraygreen[6]=0xc0; |
Yuto_K | 0:ddaa166a52da | 116 | dataarraygreen[7]=0x80; |
Yuto_K | 0:ddaa166a52da | 117 | dataarraygreen[8]=0x00; |
Yuto_K | 0:ddaa166a52da | 118 | |
Yuto_K | 0:ddaa166a52da | 119 | dataarrayblue[0]=0xff; |
Yuto_K | 0:ddaa166a52da | 120 | dataarrayblue[1]=0xfe; |
Yuto_K | 0:ddaa166a52da | 121 | dataarrayblue[2]=0xfc; |
Yuto_K | 0:ddaa166a52da | 122 | dataarrayblue[3]=0xf8; |
Yuto_K | 0:ddaa166a52da | 123 | dataarrayblue[4]=0xf0; |
Yuto_K | 0:ddaa166a52da | 124 | dataarrayblue[5]=0xe0; |
Yuto_K | 0:ddaa166a52da | 125 | dataarrayblue[6]=0xc0; |
Yuto_K | 0:ddaa166a52da | 126 | dataarrayblue[7]=0x80; |
Yuto_K | 0:ddaa166a52da | 127 | dataarrayblue[8]=0x00; |
Yuto_K | 0:ddaa166a52da | 128 | } |
Yuto_K | 0:ddaa166a52da | 129 | |
Yuto_K | 0:ddaa166a52da | 130 | void shiftout(uint8_t data){ |
Yuto_K | 0:ddaa166a52da | 131 | datapin=0; |
Yuto_K | 0:ddaa166a52da | 132 | clockpin=0; |
Yuto_K | 0:ddaa166a52da | 133 | for(int i=7;i>0;i--){ |
Yuto_K | 0:ddaa166a52da | 134 | clockpin=0; |
Yuto_K | 0:ddaa166a52da | 135 | wait_us(1); |
Yuto_K | 0:ddaa166a52da | 136 | if (data&(1<<i)){ |
Yuto_K | 0:ddaa166a52da | 137 | datapin=0; |
Yuto_K | 0:ddaa166a52da | 138 | }else{ |
Yuto_K | 0:ddaa166a52da | 139 | datapin=1; |
Yuto_K | 0:ddaa166a52da | 140 | } |
Yuto_K | 0:ddaa166a52da | 141 | wait_us(1); |
Yuto_K | 0:ddaa166a52da | 142 | clockpin=1; |
Yuto_K | 0:ddaa166a52da | 143 | wait_us(1); |
Yuto_K | 0:ddaa166a52da | 144 | datapin=0; |
Yuto_K | 0:ddaa166a52da | 145 | wait_us(1); |
Yuto_K | 0:ddaa166a52da | 146 | } |
Yuto_K | 0:ddaa166a52da | 147 | clockpin=0; |
Yuto_K | 0:ddaa166a52da | 148 | } |
Yuto_K | 0:ddaa166a52da | 149 | |
Yuto_K | 0:ddaa166a52da | 150 | void loop(){ |
Yuto_K | 0:ddaa166a52da | 151 | for(int i=0;i<10;i++){ |
Yuto_K | 0:ddaa166a52da | 152 | datared=dataarrayred[i]; |
Yuto_K | 0:ddaa166a52da | 153 | datagreen=dataarraygreen[i]; |
Yuto_K | 0:ddaa166a52da | 154 | datablue=dataarrayblue[i]; |
Yuto_K | 0:ddaa166a52da | 155 | latchpin=1; |
Yuto_K | 0:ddaa166a52da | 156 | shiftout(datagreen); |
Yuto_K | 0:ddaa166a52da | 157 | shiftout(datared); |
Yuto_K | 0:ddaa166a52da | 158 | shiftout(datablue); |
Yuto_K | 0:ddaa166a52da | 159 | latchpin=0; |
Yuto_K | 0:ddaa166a52da | 160 | wait(3); |
Yuto_K | 0:ddaa166a52da | 161 | } |
Yuto_K | 0:ddaa166a52da | 162 | } |
Yuto_K | 0:ddaa166a52da | 163 | |
Yuto_K | 0:ddaa166a52da | 164 | int main(){ |
Yuto_K | 0:ddaa166a52da | 165 | setup(); |
Yuto_K | 0:ddaa166a52da | 166 | while(1){ |
Yuto_K | 0:ddaa166a52da | 167 | loop(); |
Yuto_K | 0:ddaa166a52da | 168 | } |
Yuto_K | 0:ddaa166a52da | 169 | }*/ |
Yuto_K | 0:ddaa166a52da | 170 | /*BusInOut kathode(PC_1,PB_0,PA_4,PA_1); |
Yuto_K | 0:ddaa166a52da | 171 | //BusInOut led(PD_2,PC_11,PC_10,PC_12,PA_13,PA_14,PA_15,PB_7,PC_13,PC_3,PC_0,PA_0); |
Yuto_K | 0:ddaa166a52da | 172 | BusInOut redled(PA_13,PC_13,PA_0,PA_13); |
Yuto_K | 0:ddaa166a52da | 173 | BusInOut greenled(PB_7,PC_0,PD_2,PC_12); |
Yuto_K | 0:ddaa166a52da | 174 | BusInOut blueled(PA_15,PC_3,PC_11,PC_10); |
Yuto_K | 0:ddaa166a52da | 175 | |
Yuto_K | 0:ddaa166a52da | 176 | int main() { |
Yuto_K | 0:ddaa166a52da | 177 | kathode.output(); |
Yuto_K | 0:ddaa166a52da | 178 | redled.output(); |
Yuto_K | 0:ddaa166a52da | 179 | redled.mode(OpenDrain); |
Yuto_K | 0:ddaa166a52da | 180 | greenled.output(); |
Yuto_K | 0:ddaa166a52da | 181 | greenled.mode(OpenDrain); |
Yuto_K | 0:ddaa166a52da | 182 | blueled.output(); |
Yuto_K | 0:ddaa166a52da | 183 | blueled.mode(OpenDrain); |
Yuto_K | 0:ddaa166a52da | 184 | while(1){ |
Yuto_K | 0:ddaa166a52da | 185 | kathode=0b0001; |
Yuto_K | 0:ddaa166a52da | 186 | for(int i=0;i<4;i++){ |
Yuto_K | 0:ddaa166a52da | 187 | redled=0b0000; |
Yuto_K | 0:ddaa166a52da | 188 | greenled=0b0000; |
Yuto_K | 0:ddaa166a52da | 189 | blueled=0b1111; |
Yuto_K | 0:ddaa166a52da | 190 | wait_us(1); |
Yuto_K | 0:ddaa166a52da | 191 | redled=0; |
Yuto_K | 0:ddaa166a52da | 192 | greenled=0; |
Yuto_K | 0:ddaa166a52da | 193 | blueled=0; |
Yuto_K | 0:ddaa166a52da | 194 | kathode=kathode<<1; |
Yuto_K | 0:ddaa166a52da | 195 | } |
Yuto_K | 0:ddaa166a52da | 196 | } |
Yuto_K | 0:ddaa166a52da | 197 | kathode=0b1111; |
Yuto_K | 0:ddaa166a52da | 198 | led.output(); |
Yuto_K | 0:ddaa166a52da | 199 | led.mode(OpenDrain); |
Yuto_K | 0:ddaa166a52da | 200 | led=0xffff; |
Yuto_K | 0:ddaa166a52da | 201 | while(1){} |
Yuto_K | 0:ddaa166a52da | 202 | }*/ |