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

Dependencies:   mbed

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

Revision:
30:7f0f186d2b4a
Parent:
28:4b4682ad3b17
Child:
31:d6f78e70bf01
--- a/main.cpp	Sat Nov 05 08:42:41 2016 +0000
+++ b/main.cpp	Wed Feb 22 10:34:00 2017 +0000
@@ -1,11 +1,11 @@
 #include "mbed.h"
 
-DigitalOut RCK(PB_12);// 74595
-DigitalOut G(PB_1);   // 74595
-DigitalOut SER(PC_6); // 74164
-DigitalOut CLK(PC_5); // 74164
-DigitalIn BUTTON(USER_BUTTON); // 点灯・消灯ボタン
-Serial pc(USBTX, USBRX); // USBシリアル通信
+DigitalOut RCK(D9);// 74595
+DigitalOut G(D10);   // 74595
+DigitalOut SER(D8); // 74164
+DigitalOut CLK(D7); // 74164
+//DigitalIn BUTTON(USER_BUTTON); // 点灯・消灯ボタン
+//Serial pc(USBTX, USBRX); // USBシリアル通信
 Timer timer; // 経過時間のカウンター
 
 // 点灯パターン 手前赤、手前緑...
@@ -32,16 +32,16 @@
 int scroll = 0; // 左スクロールした量
 
 void receive() { // シリアル受信割り込み
-    if(pc.getc() == 0b00000001) pc.printf("received!\r\n");
+//    if(pc.getc() == 0b00000001) pc.printf("received!\r\n");
 //    pc.putc(pc.getc() + 1); // echo
 }
 
 int main() {
-    SPI spi(PB_15, PB_14, PB_13); // SPIピンを指定
+    SPI spi(D11, D12, D13); // SPIピン mosi, miso, sclk
     spi.format(16, 0); // 74595へ16ビットずつ送る
-    spi.frequency(10*1000*1000); // 74595へのクロック周波数 最高96 初期1
-    pc.attach(receive, Serial::RxIrq); // シリアル受信割り込み
-    pc.baud(9600); // シリアル通信のクロックレート デフォルト9600
+    spi.frequency(0.1*1000*1000); // 74595へのクロック周波数 最高96 初期1
+//    pc.attach(receive, Serial::RxIrq); // シリアル受信割り込み
+//    pc.baud(9600); // シリアル通信のクロックレート デフォルト9600
     timer.start(); // 経過時間のカウントを開始
     
     while(1) {
@@ -88,7 +88,8 @@
 //        while(timer.read_us()<0) { // 数字のぶんだけ暗くする
 //            wait_us(10);
 //        }
-        G = !BUTTON; // ボタン押すと!点灯
+
+//        G = !BUTTON; // ボタン押すと!点灯
         
         // ダイナミック点灯のパルス幅を決める
 //        while(timer.read_us()<100) { // 100*2500でゆっくり