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 "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 }*/