# include <Adafruit_NeoPixel.h>
# define PIN 2 // the pin
# define NPIXELS (9 + 16 + 25) // number of LEDs on strip
Adafruit_NeoPixel stab(NPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200);
Serial.println("\nHi Mom!\n");
Serial.println(1 << 15);
Serial.println(1ul << 15);
smartLampSetup();
}
void smartLampSetup() {
stab.begin();
stab.setPixelColor(0, 0xff0000);
stab.setPixelColor(1, 0x00ff00);
stab.setPixelColor(NPIXELS - 1, 0x0000ff);
stab.show();
delay(777);
}
//unsigned long it = 1;
unsigned long long it = 0xa5f9;
void loop() {
unsigned long long fIt = it;
for (byte ii = 0; ii < NPIXELS; ii++) {
stab.setPixelColor(ii, fIt & 0x1 ? 0x804060 : 0x103040);
fIt >>= 1;
}
stab.show();
delay(277); // so sue me.
advance();
}
// feed in the XOR of the feedback bits here 2^15 and 2^14
void advance0()
{
it <<= 1;
if (it & 0x8000)
if (it & 0x4000); else it |= 1; // <--
else if (it & 0x4000) it |= 1;
}
void advance()
{
it <<= 1;
if (it & (1ul << 15)) // 0x8000ul, gack! chain reaction interesting affect
if (it & (1 << 14)); else it |= 1; // <--
else if (it & (1 << 14)) it |= 1;
}