#define CLK 13
#define D 11
#define B 8
#define CLOCKOUT 9
bool set = false;
uint8_t out = 0; //final output variable
uint64_t preout = 0; //64 bit integer to hold control values
const int dataPin = 2; /* DS */
const int clockPin = 3; /* SHCP */
const int latchPin = 4; /* STCP */
/*
preout = 0b1111110111111111111111111111111111111111111111111010111111111111;
for (int i = 7; i >= 0; i--)
{
out = preout >> i * B;
if (out < 0x10)
Serial.print('0');
Serial.print(out, HEX);
shiftOut(D, CLK, MSBFIRST, out);
}
*/
void setup()
{
Serial.begin(115200);
delay(200);
Serial.println();
pinMode(D, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
// digitalWrite(latchPin, HIGH);
if (set == false)
{
// preout = 0b 11111101 11111111 11111111 11111111 11111111 11111111 10101111 11111111;
// FD FF FF FF FF FF AF FF
preout = 0b1111110111111111111111111111111111111111111111111010111111111111;
for (int i = 7; i >= 0; i--)
{
out = preout >> i * B;
if (out < 0x10)
Serial.print('0');
Serial.print(out, HEX);
shiftOut(D, CLK, MSBFIRST, out);
}
/*
preout = 0b1111110111111111111111111111111111111111111111111010111111111111;
for (int i = 7; i >= 0; i--)
{
out = preout >> i * B;
if (out < 0x10)
Serial.print('0');
Serial.print(out, HEX); Serial.print(" ");
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, out);
digitalWrite(latchPin, HIGH);
// shiftOut(D, CLK, MSBFIRST, out);
delay(777);
}
*/
set = true;
}
}
void setupy()
{
Serial.begin(115200);
delay(200);
Serial.println();
pinMode(D, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
// digitalWrite(latchPin, HIGH);
if (set == false)
{
// preout = 0b 11111101 11111111 11111111 11111111 11111111 11111111 10101111 11111111;
// FD FF FF FF FF FF AF FF
preout = 0b1111110111111111111111111111111111111111111111111010111111111111;
for (int i = 7; i >= 0; i--)
{
out = preout >> i * B;
if (out < 0x10)
Serial.print('0');
Serial.print(out, HEX); Serial.print(" ");
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, out);
digitalWrite(latchPin, HIGH);
// shiftOut(D, CLK, MSBFIRST, out);
delay(777);
}
set = true;
}
}
void loop()
{
//do nothing
}
void setupx() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
int pattern = 0b10101010;
void loopx() {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(500);
pattern = ~pattern; // Invert the pattern
}