LT-5016M1を74HC595で制御します。文字スクロールなどの参考にどうぞ。

Dependencies:   mbed

制作の過程はNotebookに書いています。

Revision:
37:a4f0801ded23
Parent:
36:cd90267b5a27
--- a/main.cpp	Thu Mar 09 10:54:16 2017 +0000
+++ b/main.cpp	Thu Mar 09 10:55:28 2017 +0000
@@ -82,8 +82,8 @@
  {0,0,0,0,0,0,0,0,0,128,0,7,0,0,0,8,0,0,0,0,0,0,0,0,4,4,7,7,254,254,127,127,124,124,2,2,128,128,0,0,0,0,0,0}};
  
 char scan = 16; // 点灯中の行
-int round = 0; // スキャンを何周したか
-int scroll = 0; // 左スクロールした量
+//int round = 0; // スキャンを何周したか
+//int scroll = 0; // 左スクロールした量
 char speed = 10; // スクロール速度
 
 void receive() { // シリアル受信割り込み
@@ -109,10 +109,10 @@
     while(1) {
         // 行選択
         scan++; // 一行進む
-        if(scan == 17+0) { // 16行目の次
+        if(scan == 17+10) { // 16行目の次
             SER = 0; // 点灯
             scan = 1; // 1行目に戻る
-            round++; // スキャンが1周した
+//            round++; // スキャンが1周した
         } else if(scan == 2) { // 2行目
             SER = 1; // 消灯
         }
@@ -129,8 +129,10 @@
                 p  = pattern3[y][x+(t/8/speed*2)]   >> (  (t/speed)%8);
                 p += pattern3[y][x+(t/8/speed*2)+2] << (8-(t/speed)%8);
                 spi.write(p);
+            } else {
+                spi.write(0); //消灯
+                //spi.write(pattern4[scan-1][4*11-1-i%(4*11)]);
             }
-//            spi.write(0); //消灯
 //            if(round < 500) { 
 //                spi.write(pattern1[scan-1][8-1-i%8]);
 //            } else if(round < 1000) {
@@ -142,13 +144,13 @@
         }
         
         // スクロール
-        if(round > speed) { // スクロール速度
-            scroll++; // 1ドットスクロールする
-            round = 0; // スキャン周回カウントリセット
-        }
-        if(scroll > 200) { // スクロール幅
-            scroll = 0; // スクロール数リセット
-        }
+//        if(round > speed) { // スクロール速度
+//            scroll++; // 1ドットスクロールする
+//            round = 0; // スキャン周回カウントリセット
+//        }
+//        if(scroll > 200) { // スクロール幅
+//            scroll = 0; // スクロール数リセット
+//        }
         
         RCK = 0;
         CLK = 0;