kohacraft Lab
/
kc_matrixclock_withRTC
Dot Matrix LED clock with RTC ver1.0
TLC5940.cpp@3:179ec78e9158, 2015-08-11 (annotated)
- Committer:
- kohacraft
- Date:
- Tue Aug 11 08:59:44 2015 +0000
- Revision:
- 3:179ec78e9158
- Parent:
- 1:5577d93280da
Dot Matrix LED clock with RTC ver1.0
Who changed what in which revision?
User | Revision | Line number | New 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 | 3:179ec78e9158 | 7 | //gsclk dp24に接続(CPUクロックの2分周したクロックを利用) |
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 | 3:179ec78e9158 | 12 | blank = 1; //LEDをOFF |
kohacraft | 0:c872b97ce7ea | 13 | |
kohacraft | 3:179ec78e9158 | 14 | //IO0_1(dp24)をCLKOUTに設定し、gsclkとして利用する |
kohacraft | 0:c872b97ce7ea | 15 | LPC_IOCON->PIO0_1 |= 1; // PIO0_1をCLKOUTとして使用する |
kohacraft | 3:179ec78e9158 | 16 | LPC_SYSCON->CLKOUTCLKSEL |= 0x3; // 0:RC 1:Xtal 2:WDT 3:mainclock |
kohacraft | 0:c872b97ce7ea | 17 | LPC_SYSCON->CLKOUTUEN = 0; // レジスタ更新 |
kohacraft | 0:c872b97ce7ea | 18 | LPC_SYSCON->CLKOUTUEN = 1; |
kohacraft | 0:c872b97ce7ea | 19 | while (!(LPC_SYSCON->CLKOUTUEN & 0x01)); |
kohacraft | 3:179ec78e9158 | 20 | LPC_SYSCON->CLKOUTDIV |= 2; // 2分周 |
kohacraft | 0:c872b97ce7ea | 21 | |
kohacraft | 3:179ec78e9158 | 22 | |
kohacraft | 0:c872b97ce7ea | 23 | driver.format (6,0); |
kohacraft | 0:c872b97ce7ea | 24 | driver.frequency (20000000); |
kohacraft | 0:c872b97ce7ea | 25 | if (num_ics <= 0) |
kohacraft | 0:c872b97ce7ea | 26 | { |
kohacraft | 0:c872b97ce7ea | 27 | num_drivers = 1; |
kohacraft | 0:c872b97ce7ea | 28 | } |
kohacraft | 0:c872b97ce7ea | 29 | else |
kohacraft | 0:c872b97ce7ea | 30 | { |
kohacraft | 0:c872b97ce7ea | 31 | num_drivers = num_ics; |
kohacraft | 0:c872b97ce7ea | 32 | } |
kohacraft | 0:c872b97ce7ea | 33 | |
kohacraft | 0:c872b97ce7ea | 34 | xlat = 0; // hold GS/DC data constant |
kohacraft | 0:c872b97ce7ea | 35 | |
kohacraft | 0:c872b97ce7ea | 36 | //補正データを最大に設定 |
kohacraft | 0:c872b97ce7ea | 37 | vprg = 1; |
kohacraft | 0:c872b97ce7ea | 38 | for (int i = 0; i<16*num_ics; i++) |
kohacraft | 0:c872b97ce7ea | 39 | { |
kohacraft | 0:c872b97ce7ea | 40 | driver.write (0x3F); //最大 |
kohacraft | 0:c872b97ce7ea | 41 | } |
kohacraft | 0:c872b97ce7ea | 42 | xlat = 1; |
kohacraft | 0:c872b97ce7ea | 43 | xlat = 0; // hold GS/DC data constant |
kohacraft | 0:c872b97ce7ea | 44 | |
kohacraft | 0:c872b97ce7ea | 45 | driver.format (12,0); |
kohacraft | 0:c872b97ce7ea | 46 | vprg = 0; // sets drivers to GS mode. Set to 1 to change to DC mode |
kohacraft | 0:c872b97ce7ea | 47 | |
kohacraft | 0:c872b97ce7ea | 48 | blank = 0; |
kohacraft | 0:c872b97ce7ea | 49 | |
kohacraft | 0:c872b97ce7ea | 50 | |
kohacraft | 0:c872b97ce7ea | 51 | } |
kohacraft | 0:c872b97ce7ea | 52 | |
kohacraft | 0:c872b97ce7ea | 53 | |
kohacraft | 0:c872b97ce7ea | 54 | void update_led (unsigned short* LEDS) |
kohacraft | 0:c872b97ce7ea | 55 | { |
kohacraft | 0:c872b97ce7ea | 56 | //blank = 0; |
kohacraft | 0:c872b97ce7ea | 57 | for (int k = (num_drivers - 1); k >= 0; k--) |
kohacraft | 0:c872b97ce7ea | 58 | { |
kohacraft | 0:c872b97ce7ea | 59 | for (int i = (16 - 1); i >= 0; i--) |
kohacraft | 0:c872b97ce7ea | 60 | { |
kohacraft | 0:c872b97ce7ea | 61 | driver.write (*(LEDS + k + i)); |
kohacraft | 0:c872b97ce7ea | 62 | } |
kohacraft | 0:c872b97ce7ea | 63 | } |
kohacraft | 0:c872b97ce7ea | 64 | blank = 1; |
kohacraft | 0:c872b97ce7ea | 65 | xlat = 1; |
kohacraft | 0:c872b97ce7ea | 66 | xlat = 0; |
kohacraft | 0:c872b97ce7ea | 67 | blank = 0; |
kohacraft | 0:c872b97ce7ea | 68 | |
kohacraft | 0:c872b97ce7ea | 69 | driver.format (1,0); |
kohacraft | 0:c872b97ce7ea | 70 | driver.write (0); |
kohacraft | 0:c872b97ce7ea | 71 | driver.format (12,0); |
kohacraft | 3:179ec78e9158 | 72 | wait_us(170); //4096階調のために必要な時間 4096/24MHz |
kohacraft | 0:c872b97ce7ea | 73 | |
kohacraft | 0:c872b97ce7ea | 74 | } |