From 3becad8fc3a548802090f18777a18dfdb350e0e4 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Fri, 20 Jul 2012 23:11:08 +0200 Subject: [PATCH] autonomous: factor out setAllPinPWM() loop to ledbar.h:setbyc() --- arduino/autonomous/autonomous.ino | 11 +---------- arduino/ledbar.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/arduino/autonomous/autonomous.ino b/arduino/autonomous/autonomous.ino index 0dbbd09..8137f91 100644 --- a/arduino/autonomous/autonomous.ino +++ b/arduino/autonomous/autonomous.ino @@ -152,16 +152,7 @@ void loop() //grey(led); } - for (int i = 0; i < NUM_TLCS; i++) { - // XXX: We assume static allocation of channels to pins 0..14 (in order) - // TODO: Just use unsigned char for c[] ? - unsigned char dutycycles[16]; - int *cblock = (int *) &c[i * LEDS_PER_TLC]; - for (int j = 0; j < 16; j++) { - dutycycles[j] = cblock[j]; - } - lb[i].setAllPinPWM(dutycycles); - } + setbyc(lb, c); delay(wait); } diff --git a/arduino/ledbar.h b/arduino/ledbar.h index 115e08e..fead8e3 100644 --- a/arduino/ledbar.h +++ b/arduino/ledbar.h @@ -135,3 +135,17 @@ const int cmax[cpinsets][CH] = { { 100, 230, 188 }, #endif }; + +static void setbyc(class Ledbar *lb, int (*c)[CH]) +{ + for (int i = 0; i < NUM_TLCS; i++) { + // XXX: We assume static allocation of channels to pins 0..14 (in order) + // TODO: Just use unsigned char for c[] ? + unsigned char dutycycles[16]; + int *cblock = (int *) &c[i * LEDS_PER_TLC]; + for (int j = 0; j < 16; j++) { + dutycycles[j] = cblock[j]; + } + lb[i].setAllPinPWM(dutycycles); + } +}