Сдвиговый регистр. Помогите увеличить входы.
- Войдите на сайт для отправки комментариев
Пт, 17/07/2015 - 18:20
#define O_DATA 11 //DATA for output
#define O_LATCH 10 //ST_CP for output
#define O_CLOCK 9 //SH_CP for output
#define CLKUS 1
byte dataInput;
void setup() {
pinMode(O_DATA,INPUT);
pinMode(O_LATCH,OUTPUT);
pinMode(O_CLOCK,OUTPUT);
Serial.begin(9600);
}
void loop()
{
registerRead(dataInput);
Serial.println("-------------");
delay(2000);
}
void registerRead(byte data) {
dataInput = 0;
digitalWrite(O_LATCH,HIGH);
for (int i=7; i>=0; i--){
digitalWrite(O_CLOCK,HIGH);
delayMicroseconds(CLKUS);
data |= (digitalRead(O_DATA) ? (1<<i) : 0);
delayMicroseconds(CLKUS);
digitalWrite(O_CLOCK,LOW);
if (i==7) digitalWrite(O_LATCH,LOW); // Serial Mode
Serial.print (i);
Serial.print ("=");
Serial.print (data, BIN);
Serial.println("");
delay(1000);
}
}
Q0 и Q1 зацепил на 3,3 вольта (HIGH), т.е. хотя бы два бита "1" должны стоять рядом
Монитор выдает такую билиберду:
1 - проанализировать билиберду и понять чё не так
2 - проанализировать весь код и понять чё не так
т.е. для Вас все предельно ясно и Вы призываете меня пораскинуть мозгами? Я уже сломал мозг :-) Или просто обозначаете алгоргоритм моих дальнейших действий?
я и не вникал в код :(
да , второе...
вы не прописали - данные откудова и куда идут ?
Q0 и Q1 зацепил на 3,3 вольта (HIGH
это про чё ?
Входы Q0 и Q1 микросхемы 74HC597 соеденил с лог. Единицей (3,3в), типа кнопка нажата, а остальные висят.
Нет больше мыслей? Что я делаю не так?
barabus, этот скетч от HC597 ? Вот тут есть тоже пример для этого чипа, и там ещё фигурирует сигнал паралельной загрузки, которого в этом скетче я не вижу..
Да, в качестве сдвигового регистра используется 74HC597.. Информации с примерами кода для этого чипа крайне мало. Вечерком попробую использовать пин параллельной загрузки. О результатах отпишусь.
Информации с примерами кода для этого чипа крайне мало.
...но есть много примеров для 74HC595 , а он с 74HC597 - зеркальный брат
переделать код записи в 595 в код опроса 597 - довольно просто :)