反転理由 test10 修正ヒント

Dependencies:   EightDotMatrixLed mbed

Fork of test10 by Christmas ornament gashapon ball WS

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }