Introducing the TLC_SRTN pin. Might be useful at some point.
authorMalte S. Stretz <mss@apache.org>
Tue, 3 Mar 2009 16:48:41 +0000 (16:48 +0000)
committerMalte S. Stretz <mss@apache.org>
Tue, 3 Mar 2009 16:48:41 +0000 (16:48 +0000)
src/config.h
src/tlc.c

index 2d89b66..54aa1bd 100644 (file)
@@ -10,6 +10,7 @@
 #define PIN_TLC_SIN   PIN_26
 #define PIN_TLC_BLNK  PIN_25
 #define PIN_TLC_VPRG  PIN_24
+#define PIN_TLC_SRTN  PIN_23
 
 #define PIN_DMX_INT   PIN_INT0
 #define PIN_DMX_RXD   PIN_RXD
index c2cf898..aedd7a3 100644 (file)
--- a/src/tlc.c
+++ b/src/tlc.c
@@ -67,10 +67,6 @@ void set_vprg_dc_mode(void)
 
 void tlc_init(void)
 {
-  // Initialize blanked (ie. LEDs off).
-  pin_out(PIN_TLC_BLNK);
-  pin_on( PIN_TLC_BLNK);
-
   // Timer 1 is for our GSCLK:  We refresh with a GS cycle of
   // about 100 Hz (cf. Timer 2), for each full cycle we need to
   // clock the PWM 4096 times.
@@ -100,7 +96,14 @@ void tlc_init(void)
   pin_out(PIN_TLC_SCLK);
   pin_out(PIN_TLC_SIN);
 
-  // Wait for first DMX packet.
+  // This one writes too, but has to be initialized blanked
+  // (ie. LEDs off).  The external pullup took care against
+  // flickering on boot.
+  pin_out(PIN_TLC_BLNK);
+  set_blnk_on();
+
+  // Here we could read the return from the painter.
+  pin_in( PIN_TLC_SRTN);
 }
 
 void tlc_set_data_done(void)