74HC959 verhält sich merkwürdig

OP #4915704
Lesenswert?

Hallo,

ich habe hier ein Schieberegsiter, konkret ein 74HC959. Ich wollte 
erstmal nur zum testen ein LED-Lauflicht erzeugen. Dafür habe ich 
folgenden Code geschrieben
1
//Pin connected to ST_CP of 74HC595
2
//Bei einer Flanke werden die Daten im Schieberegister ins Ausgangsregister übernommen
3
int latchPin = 8;
4

5
//Pin connected to SH_CP of 74HC595
6
//Bei einer Flanke wird der Wert der am DataPin anliegt ins Schieberegister übernommen, zusätzlich, wird alles einmal weitergeshifted
7
int clockPin = 18;
8

9
//Pin connected to DS of 74HC595
10
//Hier liegt der Wert an, der in das Schieberegister übernommen werden soll.
11
int dataPin = 17;
12

13
byte i = 9;
14

15
void setup() {
16
  pinMode(latchPin, OUTPUT);
17
  pinMode(clockPin, OUTPUT);
18
  pinMode(dataPin, OUTPUT);
19
}
20

21
void loop() {
22
  if(i == 9)
23
  {
24
    //Ersten Impuls erzeugen
25
    digitalWrite(dataPin, HIGH);
26
    digitalWrite(clockPin, HIGH);
27
    digitalWrite(latchPin, HIGH);
28
    delay(100);
29
    digitalWrite(dataPin, LOW);
30
    digitalWrite(clockPin, LOW);
31
    digitalWrite(latchPin, LOW);
32
    delay(900);  
33
    i = 1;
34
  }
35
  else
36
  {
37
    //Durchschieben 
38
    digitalWrite(clockPin, HIGH);
39
    digitalWrite(latchPin, HIGH);
40
    delay(100);
41
    digitalWrite(clockPin, LOW);
42
    digitalWrite(latchPin, LOW);
43
    delay(900);
44
    i++;
45
  }
46
}

Die ersten 4 LEDs leuchten so wie sie sollen, d.h. eine nach der 
anderen. Sobald aber die 5. LED leuchten sollte, leuchten LED 5 UND 6. 
Wenn die 6. leuchten sollte, leuchtet KEINE, und wenn dann die 7. 
leuchten sollte, leuchtet die 6. mit.

Kann mir einer sagen, warum?

Gruß,
Freddy

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren