Some optimizations.
authorMalte S. Stretz <mss@apache.org>
Sun, 11 Jan 2009 00:25:23 +0000 (00:25 +0000)
committerMalte S. Stretz <mss@apache.org>
Sun, 11 Jan 2009 00:25:23 +0000 (00:25 +0000)
src/tlc.c

index 8929539..29c5203 100644 (file)
--- a/src/tlc.c
+++ b/src/tlc.c
@@ -143,8 +143,10 @@ void tlc_int_timer2_ocm(void)
 \r
 void shift8(uint8_t byte)\r
 {\r
+  // Shift out all eight bits.\r
+  // TODO: The assembler code is a mess, why the 16-Bit counter?\r
   for (uint8_t bit = bits_uint8(1, 0, 0, 0, 0, 0, 0, 0); bit; bit >>= 1) {\r
-    if (bit & byte) {\r
+    if (byte & bit) {\r
       pin_on(PIN_TLC_SIN);\r
     } else {\r
       pin_off(PIN_TLC_SIN);\r
@@ -160,7 +162,7 @@ void shift12(uint8_t byte)
 \r
   // Plus 4 zero bits (makes a shift by 4).\r
   pin_off(PIN_TLC_SIN);\r
-  for (uint8_t bit = bits_uint8(0, 0, 0, 0, 1, 0, 0, 0); bit; bit >>= 1) {\r
+  for (uint8_t bit = 4; bit; bit--) {\r
     clock_sclk();\r
   }\r
 }\r