diff --git a/Arduino/LEDstream_FastLED/LEDstream_FastLED.ino b/Arduino/LEDstream_FastLED/LEDstream_FastLED.ino index 8a3b850..aec1dad 100644 --- a/Arduino/LEDstream_FastLED/LEDstream_FastLED.ino +++ b/Arduino/LEDstream_FastLED/LEDstream_FastLED.ino @@ -4,7 +4,7 @@ * library (http://fastled.io) for driving led strips. * * http://github.com/dmadison/Adalight-FastLED - * Last Updated: 2017-04-08 + * Last Updated: 2017-04-23 */ // --- General Settings @@ -27,6 +27,8 @@ static const unsigned long //#define CLEAR_ON_START // LEDs are cleared on reset //#define GROUND_PIN 10 // additional grounding pin (optional) //#define CALIBRATE // sets all LEDs to the color of the first +//#define DEBUG_LED 13 // turns on the Arduino's built-in LED + // if the magic word + checksum match // -------------------------------------------------------------------- @@ -67,6 +69,11 @@ void setup(){ digitalWrite(GROUND_PIN, LOW); #endif + #ifdef DEBUG_LED + pinMode(DEBUG_LED, OUTPUT); + digitalWrite(DEBUG_LED, LOW); + #endif + FastLED.addLeds(leds, Num_Leds); FastLED.setBrightness(Brightness); @@ -80,20 +87,22 @@ void setup(){ } void adalight(){ - uint8_t - mode = MODE_HEADER, + static uint8_t + mode = MODE_HEADER; + static uint8_t headPos, hi, lo, chk; int16_t c; - uint16_t + static uint16_t outPos; - uint32_t + static uint32_t bytesRemaining; unsigned long - lastByteTime, - lastAckTime, t; + static unsigned long + lastByteTime, + lastAckTime; Serial.print("Ada\n"); // Send ACK string to host @@ -134,6 +143,10 @@ void adalight(){ if(chk == (hi ^ lo ^ 0x55)) { // Checksum looks valid. Get 16-bit LED count, add 1 // (# LEDs is always > 0) and multiply by 3 for R,G,B. + #ifdef DEBUG_LED + digitalWrite(DEBUG_LED, HIGH); + #endif + bytesRemaining = 3L * (256L * (long)hi + (long)lo + 1L); outPos = 0; memset(leds, 0, Num_Leds * sizeof(struct CRGB)); @@ -166,6 +179,10 @@ void adalight(){ // End of data -- issue latch: mode = MODE_HEADER; // Begin next header search FastLED.show(); + + #ifdef DEBUG_LED + digitalWrite(DEBUG_LED, LOW); + #endif } break; } // end switch