反転理由 test10 修正ヒント
Dependencies: EightDotMatrixLed mbed
Fork of test10 by
main.cpp
00001 /* 00002 00003 ※※結論、結線の間違い※※ 00004 00005 ※※反転理由※※ 00006 95行目でパターンをRowsへ読み込んでいる → Rows = DotPattern1[pattern]; 00007 そのRowsのピンを見ると(26行目)dp24へ出力されている事が分かる、これが 00008 イトウさんの回答コメントによりMatrixLEDの黄色9番へ接続されている 00009 MatrixLEDのピンサインでは黄色はカソードを示しており、結果Hiで消灯、Loで点灯する 00010 これが反転理由です 00011 00012 ※※修正方法※※ 00013 Rowsから出ている結線をSeg側へ、Colsから出ている結線をCom側へ結線し直せばOKです 00014 00015 */ 00016 00017 #include "mbed.h" 00018 #include "EightDotMatrixLed.h" 00019 00020 // common type (0:anode common 1:cathode common) 00021 // | 00022 // | segA segB segC segD segE segF segG segh com1 com2 com3 com4 com5 com6 com7 com8 00023 // | | | | | | | | | | | | | | | | | 00024 EightDotMatrixLed segmentled(0, dp24, dp25, dp26, dp27, dp28, dp17, dp18, dp5, dp13, dp14, dp15, dp16, dp6, dp9, dp10, dp11); 00025 00026 BusOut Rows (dp24, dp25, dp26, dp27,dp28,dp17,dp18,dp5); 00027 BusOut Cols (dp13,dp14,dp15,dp16,dp6,dp9,dp10,dp11); 00028 00029 00030 int DotPattern1[] = {0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 00031 0x7F, 0x00, 0x7F, 0x7E, 0x7E, 00032 0x00, 0x7E, 0x7E, 0x7F, 0x78, 00033 0x47, 0x3F, 0x47, 0x3F, 0x47, 00034 0x78, 0x7F, 0x7F, 0x7F, 0x7F, 00035 0x5D, 0x3A, 0x36, 0x4D, 0x7F, 00036 0x43, 0x3F, 0x5F, 0x3F, 0x43, 00037 0x7F, 0x02, 0x7F, 0x7D, 0x40, 00038 0x3D, 0x5D, 0x7F, 0x47, 0x3B, 00039 0x3B, 0x57, 0x7F, 0x00, 0x7B, 00040 0x03, 0x7F, 0x47, 0x2B, 0x2B, 00041 0x37, 0x7F, 0x37, 0x2B, 0x5B, 00042 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 00043 0x7f, 0x7f, 0x7f, 0x7f, 0x7f 00044 }; //Message = "ITW Switches". 00045 00046 00047 00048 uint8_t D_dotGrayData[8][8] = { 00049 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},//snow 00050 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 00051 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 00052 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 00053 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 00054 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 00055 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 00056 {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, 00057 }; 00058 uint8_t D_dotDigitalData[8][8] = { 00059 {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},//snow 00060 {0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00}, 00061 {0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}, 00062 {0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 00063 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 00064 {0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01}, 00065 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, 00066 {0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00} 00067 }; 00068 00069 Timer timer; // data change timer 00070 00071 float count; 00072 int ColCount; 00073 int pattern; 00074 int loop; 00075 int index; 00076 int i; 00077 int k; 00078 00079 int main() { 00080 i=0; 00081 uint8_t seg; 00082 uint8_t wk0, wk1, wk2, wk3, wk4, wk5, wk6, wk7; 00083 00084 while(1) { 00085 index=0; 00086 while (index<65) {//横方向移動回数(65)1だと停止 00087 loop=0; 00088 while (loop<8) {//スクロール速度初期値(4) 00089 00090 count = 1; 00091 pattern = 0+index; 00092 while (count<0x81) {//cols側の表示行数2進数ケタ数(20) 00093 Cols = count; 00094 if(i==0){ 00095 Rows = DotPattern1[pattern]; 00096 }else{if(i==1){ 00097 // After 500[ms] to start the process 00098 00099 timer.start(); 00100 00101 while(k<6000) { 00102 00103 if(timer.read_ms() >= 500){ 00104 timer.reset(); 00105 00106 // com0 Led off to on smooth, on to off hard 00107 wk0 = D_dotDigitalData[0][7]; 00108 for(seg = 7; seg > 0; seg--){ 00109 D_dotDigitalData[0][seg] = D_dotDigitalData[0][seg - 1]; 00110 } 00111 D_dotDigitalData[0][0] = wk0; 00112 00113 // com1 Led off to on smooth, on to off hard 00114 wk1 = D_dotDigitalData[1][7]; 00115 for(seg = 7; seg > 0; seg--){ 00116 D_dotDigitalData[1][seg] = D_dotDigitalData[1][seg - 1]; 00117 } 00118 D_dotDigitalData[1][0] = wk1; 00119 00120 // com2 Led off to on smooth, on to off hard 00121 wk2 = D_dotDigitalData[2][7]; 00122 for(seg = 7; seg > 0; seg--){ 00123 D_dotDigitalData[2][seg] = D_dotDigitalData[2][seg - 1]; 00124 } 00125 D_dotDigitalData[2][0] = wk2; 00126 00127 // com3 Led off to on smooth, on to off hard 00128 wk3 = D_dotDigitalData[3][7]; 00129 for(seg = 7; seg > 0; seg--){ 00130 D_dotDigitalData[3][seg] = D_dotDigitalData[3][seg - 1]; 00131 } 00132 D_dotDigitalData[3][0] = wk3; 00133 00134 // com4 Led off to on smooth, on to off hard 00135 wk4 = D_dotDigitalData[4][7]; 00136 for(seg = 7; seg > 0; seg--){ 00137 D_dotDigitalData[4][seg] = D_dotDigitalData[4][seg - 1]; 00138 } 00139 D_dotDigitalData[4][0] = wk4; 00140 00141 // com5 Led off to on smooth, on to off hard 00142 wk5 = D_dotDigitalData[5][7]; 00143 for(seg = 7; seg > 0; seg--){ 00144 D_dotDigitalData[5][seg] = D_dotDigitalData[5][seg - 1]; 00145 } 00146 D_dotDigitalData[5][0] = wk5; 00147 00148 // com6 Led off to on smooth, on to off hard 00149 wk6 = D_dotDigitalData[6][7]; 00150 for(seg = 7; seg > 0; seg--){ 00151 D_dotDigitalData[6][seg] = D_dotDigitalData[6][seg - 1]; 00152 } 00153 D_dotDigitalData[6][0] = wk6; 00154 00155 // com7 Led off to on smooth, on to off hard 00156 wk7 = D_dotDigitalData[7][7]; 00157 for(seg = 7; seg > 0; seg--){ 00158 D_dotDigitalData[7][seg] = D_dotDigitalData[7][seg - 1]; 00159 } 00160 D_dotDigitalData[7][0] = wk7; 00161 } 00162 00163 // This function, please repeat the process in less than 1ms. 00164 segmentled.EightDotMatrixLed_main((uint8_t*)D_dotGrayData, (uint8_t*)D_dotDigitalData); 00165 k++; 00166 } 00167 }{ 00168 i=0; 00169 k=0; 00170 } 00171 00172 } 00173 00174 wait_ms(3); 00175 count = count*2; 00176 pattern++; 00177 } 00178 loop++; 00179 } 00180 index++; 00181 00182 } 00183 i++;} 00184 }
Generated on Wed Jul 13 2022 08:21:15 by
1.7.2
