Dot Matrix LED clock with RTC ver1.0

Dependencies:   ds3231 mbed

Committer:
kohacraft
Date:
Tue Aug 11 00:56:37 2015 +0000
Revision:
0:c872b97ce7ea
Child:
1:5577d93280da
only 1:00 indicate

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kohacraft 0:c872b97ce7ea 1 #include "TLC5940.h"
kohacraft 0:c872b97ce7ea 2
kohacraft 0:c872b97ce7ea 3 SPI driver( dp2 , NC , dp6 ); //mosi , miso , sck
kohacraft 0:c872b97ce7ea 4 DigitalOut vprg = dp4;
kohacraft 0:c872b97ce7ea 5 DigitalOut xlat = dp9;
kohacraft 0:c872b97ce7ea 6 DigitalOut blank = dp10;
kohacraft 0:c872b97ce7ea 7 //PwmOut gsclk = dp1; gsclkはdp24にマスタークロックの出力を利用する
kohacraft 0:c872b97ce7ea 8 int num_drivers = 1;
kohacraft 0:c872b97ce7ea 9
kohacraft 0:c872b97ce7ea 10 void setup (int num_ics)
kohacraft 0:c872b97ce7ea 11 {
kohacraft 0:c872b97ce7ea 12 blank = 1;
kohacraft 0:c872b97ce7ea 13
kohacraft 0:c872b97ce7ea 14 LPC_IOCON->PIO0_1 |= 1; // PIO0_1をCLKOUTとして使用する
kohacraft 0:c872b97ce7ea 15 // CLKOUTピンに出力するクロックソースの選択
kohacraft 0:c872b97ce7ea 16 // b00 IRC発振器
kohacraft 0:c872b97ce7ea 17 // b01 Xtal発振器
kohacraft 0:c872b97ce7ea 18 // b10 WDT発振器
kohacraft 0:c872b97ce7ea 19 // b11 mainclock
kohacraft 0:c872b97ce7ea 20 LPC_SYSCON->CLKOUTCLKSEL |= 0x3; // mainclockを選択
kohacraft 0:c872b97ce7ea 21 LPC_SYSCON->CLKOUTUEN = 0; // レジスタ更新
kohacraft 0:c872b97ce7ea 22 LPC_SYSCON->CLKOUTUEN = 1;
kohacraft 0:c872b97ce7ea 23 while (!(LPC_SYSCON->CLKOUTUEN & 0x01));
kohacraft 0:c872b97ce7ea 24 // クロック分周器の値
kohacraft 0:c872b97ce7ea 25 // 0 ディスエーブル
kohacraft 0:c872b97ce7ea 26 // 1~255 分周値
kohacraft 0:c872b97ce7ea 27 // 31:8 - - 予約済み
kohacraft 0:c872b97ce7ea 28 LPC_SYSCON->CLKOUTDIV |= 1; // 1分周=分周しない
kohacraft 0:c872b97ce7ea 29
kohacraft 0:c872b97ce7ea 30
kohacraft 0:c872b97ce7ea 31 driver.format (6,0);
kohacraft 0:c872b97ce7ea 32 driver.frequency (20000000);
kohacraft 0:c872b97ce7ea 33 if (num_ics <= 0)
kohacraft 0:c872b97ce7ea 34 {
kohacraft 0:c872b97ce7ea 35 num_drivers = 1;
kohacraft 0:c872b97ce7ea 36 }
kohacraft 0:c872b97ce7ea 37 else
kohacraft 0:c872b97ce7ea 38 {
kohacraft 0:c872b97ce7ea 39 num_drivers = num_ics;
kohacraft 0:c872b97ce7ea 40 }
kohacraft 0:c872b97ce7ea 41
kohacraft 0:c872b97ce7ea 42 xlat = 0; // hold GS/DC data constant
kohacraft 0:c872b97ce7ea 43
kohacraft 0:c872b97ce7ea 44 //補正データを最大に設定
kohacraft 0:c872b97ce7ea 45 vprg = 1;
kohacraft 0:c872b97ce7ea 46 for (int i = 0; i<16*num_ics; i++)
kohacraft 0:c872b97ce7ea 47 {
kohacraft 0:c872b97ce7ea 48 driver.write (0x3F); //最大
kohacraft 0:c872b97ce7ea 49 }
kohacraft 0:c872b97ce7ea 50 xlat = 1;
kohacraft 0:c872b97ce7ea 51 xlat = 0; // hold GS/DC data constant
kohacraft 0:c872b97ce7ea 52
kohacraft 0:c872b97ce7ea 53 driver.format (12,0);
kohacraft 0:c872b97ce7ea 54 vprg = 0; // sets drivers to GS mode. Set to 1 to change to DC mode
kohacraft 0:c872b97ce7ea 55 // gsclk.period_us (1); // set grayscale clock to 1000 Hz
kohacraft 0:c872b97ce7ea 56 // gsclk = 0.5; // turn on grayscale clock to 50% duty cycle at afore mentioned frequency
kohacraft 0:c872b97ce7ea 57
kohacraft 0:c872b97ce7ea 58 blank = 0;
kohacraft 0:c872b97ce7ea 59
kohacraft 0:c872b97ce7ea 60
kohacraft 0:c872b97ce7ea 61 }
kohacraft 0:c872b97ce7ea 62
kohacraft 0:c872b97ce7ea 63
kohacraft 0:c872b97ce7ea 64 void update_led (unsigned short* LEDS)
kohacraft 0:c872b97ce7ea 65 {
kohacraft 0:c872b97ce7ea 66 //blank = 0;
kohacraft 0:c872b97ce7ea 67 for (int k = (num_drivers - 1); k >= 0; k--)
kohacraft 0:c872b97ce7ea 68 {
kohacraft 0:c872b97ce7ea 69 for (int i = (16 - 1); i >= 0; i--)
kohacraft 0:c872b97ce7ea 70 {
kohacraft 0:c872b97ce7ea 71 driver.write (*(LEDS + k + i));
kohacraft 0:c872b97ce7ea 72 }
kohacraft 0:c872b97ce7ea 73 }
kohacraft 0:c872b97ce7ea 74 blank = 1;
kohacraft 0:c872b97ce7ea 75 xlat = 1;
kohacraft 0:c872b97ce7ea 76 xlat = 0;
kohacraft 0:c872b97ce7ea 77 blank = 0;
kohacraft 0:c872b97ce7ea 78
kohacraft 0:c872b97ce7ea 79 driver.format (1,0);
kohacraft 0:c872b97ce7ea 80 driver.write (0);
kohacraft 0:c872b97ce7ea 81 driver.format (12,0);
kohacraft 0:c872b97ce7ea 82 wait_us(85); //4096階調のために必要な時間 4096/48MHz
kohacraft 0:c872b97ce7ea 83
kohacraft 0:c872b97ce7ea 84 }