Проблема с сдвиговым регистром

pomkka
Offline
Зарегистрирован: 18.08.2015

Здравствуйте. Имеется следующий код: 

const int SER= 8;
const int LATH = 9;
const int CLK = 10;
int data;
double result;

void setup ()
{
   pinMode(SER, OUTPUT);
   pinMode(LATH, OUTPUT);
   pinMode(CLK, OUTPUT);  
   Serial.begin(9600);
}

void loop()
{
  if (Serial.available() > 0)
  {
      data = Serial.read();
      Serial.print(data);
      digitalWrite(LATH, LOW);
      shiftOut(SER, CLK, MSBFIRST, data);
      digitalWrite(LATH, HIGH);  
      delay(1000); 
  }     
}

Вывожу данные из 1Ски и происходит следующая непонятная ситуация: Сдвиговый регистр отрабатывает ровно 3 раза, первый раз ок, а далее какие-то непонятные кракозябры , однако если я в shiftOut пишу просто двоичный код, то регистр отрабатывает лишь единожды. Обратно в 1Ску уходит код символа, т.е в целом все верно. У кого-нибудь есть идеи почему регистр отрабатывает 3 раза? 

ssvs111
ssvs111 аватар
Offline
Зарегистрирован: 11.07.2014

вероятно за символом данных идут символ конца строки и символ перевода каретки