PDA

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



Mr-400-Volt
15.07.2006, 18:07
Hallo, ich habe mir ein board gebaut, auf dem 4 mal 74hc165 und 4 mal 74hc595 zur porterweiterung sitzen. Die anschlüße zum AVR sind folgende :
Pind.0 = clock input (hc595)
Pind.1 = storage clock input (hc595)
Pind.2 = Data input (hc595

Pind.3 = clock input (hc165)
Pind.4 = parallel load input (165)
Pind.5 = output (165)

Der Code ist :
.
.
Config Portd = &B11101111
Do
Portd.4 = 0
Portd.4 = 1
Portd.3 = 0
Portd.3 = 1
Temp = Pind.5
Locate 1 , 1
Lcd Temp
Waitms 200
Loop

Ich beckomme keine Werte eingelesen. Die Variable Temp bleibt immer null. Wo hab ich einen Fehler gemacht ?

Danke !!!

PicNick
15.07.2006, 18:41
Weiß jetzt nicht, wie das gemeint ist. Daß CLK INH beim shiften auf LOW sein muß, weißt du ?
Ich würde ein Byte etwa so einlesen (testweise, demomäßig)


dim cnt as byte
Do
Temp = 0
Portd.4 = 0 ' Parallel die Input bits einlesen
Portd.4 = 1 ' so, jetzt shiften
'--- BITs holen ----------------
for cnt = 1 to 8
Portd.3 = 0 ' clock runter
Portd.3 = 1 ' clock rauf
shift temp, left, 1
Temp = Temp or Pind.5 'Bit reinschieben
next
' jetzt sind alle 8 Bit vom schieberegister in "temp"
Locate 1 , 1
Lcd bin(Temp)
Waitms 200
Loop

Mr-400-Volt
15.07.2006, 21:35
Keine änderung. Nu hab ich 8 nullen auf dem Display stehen.

PicNick
17.07.2006, 08:52
Hopperla.

..Config Portd = &B11101111 ..
Du brauchst ja für den HC165:
Config Portd = &B11011111
(3 u 4 Output, 5 Input)