PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Shiftout



rauf81
22.05.2011, 13:45
Hallo zusammen.

Ich versuche ein Schieberegister "74HC595" zum laufen zu bringen.

Die Schaltung ist auf dem Steckbrett aufgebaut.
PortA.0 an --> SI (Pin14)
PortA.1 an -->SCK (Pin11)
PortA.2 an -->RCK (pin12)
VCC des 74HC595 an VCC 5V+
GND des 74HC595 an GND
G des 74HC595 an GND

Alle Ausgänge sind mit je einem LED bestückt.


Lasse ich diese Programm laufen:

$regfile = "m16def.dat"
$crystal = 16000000

Ddra = &B11111111

Mosi Alias Porta.0
Sck Alias Porta.1
Ss Alias Porta.2

Dim Daten As Byte
Dim I As Word


Daten = 1


For I = 1 To 9

Mosi = Daten

Set Sck
Reset Sck

Set Ss
Reset Ss

Waitms 100


Next I

End

funktioniert es nur wenn ich GND vom 74HC959 trenne.

Lasse ich dieses Programm laufen:

$regfile = "m16def.dat"
$crystal = 16000000

Ddra = &B11111111

Mosi Alias Porta.0
Sck Alias Porta.1
Ss Alias Porta.2

Dim Daten As Byte
Dim I As Byte


Daten = &B01010101


Do

Mosi = Daten

Set Sck
Reset Sck

Set Ss
Reset Ss

Waitms 100

Loop

End

Leuchten alle LED's. Wobei nur jedes Zeite leuchten sollte.

Mir ist es auch noch nicht gelungen Ausgänge des Schieberegisters auf 0 zu setzen und LED's wieder auszuschalten.

Ich habe schon mehrmals die Schaltung neu aufgebaut aber die Fehler bleiben die selben.

Kann mir bitte jemand auf die sprünge helfen, würde mich sehr feruen.


Grüße Flo

for_ro
22.05.2011, 14:16
Mosi Alias Porta.0
...
Mosi = Daten

Hallo Flo,
mit diesen Befehlen schickst du nicht den Inhalt der Variable "Daten" seriell auf den Ausgang PortA.0, sondern der Porta.0 wird auf Daten.0 gesetzt.
Du schreibst im Titel, dass du Probleme mit Shiftout hast, benutzt es aber nicht. Warum?

rauf81
22.05.2011, 14:37
Oh mein Fehler.
Programm Nr Zwei sollte natürlich so aussehen:

$regfile = "m16def.dat"
$crystal = 16000000

Ddra = &B11111111

Mosi Alias Porta.0
Sck Alias Porta.1
Ss Alias Porta.2

Dim Daten As Byte



Daten = &B01010101

Do

Shiftout Mosi , Sck , Daten
Set Ss
Reset Ss

Loop


End

Sorry

Also wenn ich das aufspiele dann sollte doch jedes zweite LED an sein.
Es blinkt aber nur QA also die erste LED.

Grüße Flo

rauf81
22.05.2011, 16:07
OK

Ich habe das Problem gelöst.

SCLR noch auf VCC gelegt und nun geht es. :p

Grüße Flo

rauf81
22.05.2011, 16:31
Was ich aber noch nicht verstehe:

Also ich schiebe &B00000001 in Schieberegister LED 1 leuchtet.
Dann &B00000010 Sollte doch LED 2 leuchten ?? aber es leuchtet LED 1

Warum ist das so und wie kann ich den Fehler beheben...

Grüße Flo