p4 ken
/
LED_Matrix_Japanese_Scroll
LT-5016M1を74HC595で制御します。文字スクロールなどの参考にどうぞ。
制作の過程はNotebookに書いています。
Diff: main.cpp
- Revision:
- 40:39e626b5269d
- Parent:
- 39:f9a450e32abb
- Child:
- 41:7c72eff4279a
--- a/main.cpp Thu Mar 23 11:33:19 2017 +0000 +++ b/main.cpp Mon Apr 03 09:11:56 2017 +0000 @@ -87,7 +87,8 @@ char scan = 16; // 点灯中の行 //int round = 0; // スキャンを何周したか //int scroll = 0; // 左スクロールした量 -char speed = 30; // 5+11 // スクロール進段ミリ秒 +char speed = 30-29; // スクロール進段ミリ秒 +int t = 0; // 経過時間 void receive() { // シリアル受信割り込み // if(pc.getc() == 0b00000001) pc.printf("received!\r\n"); @@ -116,14 +117,16 @@ SER = LO; // 点灯 scan = 1; // 1行目に戻る // round++; // スキャンが1周した +// t = timer.read_ms(); + t += 1; } else if(scan == 2) { // 2行目 SER = HI; // 消灯 } // 表示パターン送り込み - int t = timer.read_ms(); // int t = scroll; for(int i=0; i<4*11; i++){ // iは最大で~*11文字 + if(true) { if(t/8/speed*2 < 4*(166+11)) { unsigned char p; char y = scan-1; @@ -144,11 +147,13 @@ } spi.write(p); } else { - spi.write((unsigned char)~pattern4[scan-1][4*11-1-i%(4*11)]); + spi.write((unsigned char)~pattern5[scan-1][4*11-1-i%(4*11)]); // spi.write((unsigned char)~0b00000000); //消灯 - } + } + } // spi.write((unsigned char)~pattern2[scan-1][4*11-1-i%(4*11)]); //spi.write(0); +//spi.write(0b10101010); //spi.write(0b11111111); } @@ -160,10 +165,12 @@ // if(scroll > 200) { // スクロール幅 // scroll = 0; // スクロール数リセット // } - + + wait_us(10); RCK = LO; CLK = LO; - G = LO; // 点灯 +// G = HI; // 消灯 + wait_us(10); RCK = HI; CLK = HI; @@ -172,7 +179,7 @@ // wait_us(10); // } -// G = BUTTON; // ボタン押すと消灯 + if(!BUTTON) G = LO; // ボタン押せば点灯 // ダイナミック点灯のパルス幅を決める // while(timer.read_us()<100) { // 100*2500でゆっくり