Dot Matrix LED clock with RTC ver1.0

Dependencies:   ds3231 mbed

Revision:
3:179ec78e9158
Parent:
1:5577d93280da
--- a/TLC5940.cpp	Tue Aug 11 08:05:41 2015 +0000
+++ b/TLC5940.cpp	Tue Aug 11 08:59:44 2015 +0000
@@ -4,30 +4,22 @@
 DigitalOut vprg = dp4;
 DigitalOut xlat = dp9;
 DigitalOut blank = dp10;
-//PwmOut gsclk = dp1; gsclkはdp24にマスタークロックの出力を利用する
+//gsclk dp24に接続(CPUクロックの2分周したクロックを利用)
 int num_drivers = 1;
 
 void setup (int num_ics)
 {
-    blank = 1;
+    blank = 1;  //LEDをOFF
     
+    //IO0_1(dp24)をCLKOUTに設定し、gsclkとして利用する
     LPC_IOCON->PIO0_1 |= 1;        // PIO0_1をCLKOUTとして使用する
-    // CLKOUTピンに出力するクロックソースの選択
-    //    b00 IRC発振器
-    //    b01 Xtal発振器
-    //    b10 WDT発振器
-    //    b11 mainclock
-    LPC_SYSCON->CLKOUTCLKSEL |= 0x3;    // mainclockを選択
+    LPC_SYSCON->CLKOUTCLKSEL |= 0x3;    // 0:RC 1:Xtal 2:WDT 3:mainclock
     LPC_SYSCON->CLKOUTUEN = 0;          // レジスタ更新
     LPC_SYSCON->CLKOUTUEN = 1;
     while (!(LPC_SYSCON->CLKOUTUEN & 0x01));
-    // クロック分周器の値
-    //  0 ディスエーブル
-    //  1~255 分周値
-    //  31:8 - - 予約済み
-    LPC_SYSCON->CLKOUTDIV |= 2;         // 1分周=分周しない
+    LPC_SYSCON->CLKOUTDIV |= 2;         // 2分周
 
-
+    
     driver.format (6,0);
     driver.frequency (20000000);
     if (num_ics <= 0)
@@ -52,8 +44,6 @@
     
     driver.format (12,0);
     vprg = 0;               // sets drivers to GS mode. Set to 1 to change to DC mode
-//    gsclk.period_us (1);    // set grayscale clock to 1000 Hz
-//    gsclk = 0.5;            // turn on grayscale clock to 50% duty cycle at afore mentioned frequency
     
     blank = 0;
  
@@ -79,6 +69,6 @@
     driver.format (1,0);
     driver.write (0);
     driver.format (12,0);
-    wait_us(85*2);  //4096階調のために必要な時間  4096/48MHz
+    wait_us(170);  //4096階調のために必要な時間  4096/24MHz
 
 }
\ No newline at end of file