Dot Matrix LED clock with RTC ver1.0

Dependencies:   ds3231 mbed

Files at this revision

API Documentation at this revision

Comitter:
kohacraft
Date:
Tue Aug 11 08:59:44 2015 +0000
Parent:
2:9c618daf65f5
Commit message:
Dot Matrix LED clock with RTC ver1.0

Changed in this revision

TLC5940.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 9c618daf65f5 -r 179ec78e9158 TLC5940.cpp
--- 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
diff -r 9c618daf65f5 -r 179ec78e9158 main.cpp
--- a/main.cpp	Tue Aug 11 08:05:41 2015 +0000
+++ b/main.cpp	Tue Aug 11 08:59:44 2015 +0000
@@ -168,14 +168,12 @@
     //TLC5940初期設定
     setup ( num_ics );
     
-    wait(0.2);
-    
+   
     //DS3231初期設定
     ds3231_cntl_stat_t data = {0,0}; //SQWに1秒のクロックを出力する
     rtc.set_cntl_stat_reg( data );
 
     secInt.rise( &secUp ); //RTCの1秒クロックでカウントアップする
-    wait(0.2);
     
     //DS3231に記録されている時間を読み出す
     ds3231_time_t time;