#include <SPI.h>
const int STCPPin = 4; // пин, управляющий выходной защёлкой
const int STCPPin_2 = 2; // пин, управляющий выходной защёлкой
int count = 1;
void setup()
{
Serial.begin(9600);
SPI.begin();
pinMode(STCPPin, OUTPUT);
digitalWrite(STCPPin, LOW);
pinMode(STCPPin_2, OUTPUT);
digitalWrite(STCPPin_2, LOW);
SPI.transfer(0); //сброс всех выходов в ноль
digitalWrite(STCPPin, HIGH); //формирование фронта на выходную защелку
digitalWrite(STCPPin, LOW);
//digitalWrite(STCPPin_2, HIGH); //формирование фронта на выходную защелку
//digitalWrite(STCPPin_2, LOW);
}
// Кольцевой сдвиг
void rotateLeft(uint8_t &bits)
{
uint8_t high_bit = bits & (1 << 7) ? 1 : 0;
bits = (bits << 1) | high_bit;
Serial.print("high_bit: "); Serial.println(high_bit);
}
void loop()
{
SPI.setBitOrder(LSBFIRST); // LSBFIRST - наименьший разряд первый, MSBFIRST - старший разряд первый
SPI.setDataMode(SPI_MODE2);
static uint8_t nomad = 1; //активен только один светодиод
Serial.print("nomad: "); Serial.println(nomad);
SPI.transfer(nomad);
digitalWrite(STCPPin, HIGH); //формирование фронта на выходную защелку
digitalWrite(STCPPin, LOW);
//digitalWrite(STCPPin_2, HIGH); //формирование фронта на выходную защелку
//digitalWrite(STCPPin_2, LOW);
rotateLeft(nomad); //сдвиг бита на один разрд
delay(500);
}