Forum: Mikrocontroller und Digitale Elektronik 74HC165 Atmega32 mit 24 Taster


von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich versuche gerade mit einem Atmega32 ein 74HC165 aus zu lesen.
Ich möchte jeden Taster definieren und aus lesen.
Aber irgendwie geht das nicht so richtig.
Taster1 zeigt er an aber die anderen nicht, geschweige die anderen 2 
74HC165.
Liege ich bei denn Code auf dem Holzweg?
Ein Tipp wäre nicht schlecht.
Gruß Peter

von Wolfgang (Gast)


Lesenswert?

Peter schrieb:
> Taster1 zeigt er an aber die anderen nicht, geschweige die anderen 2
> 74HC165.

Wie sieht deine Schaltung dazu aus?
Vielleicht ist die Anzeige einfach nur zu langsam oder du liest sie zu 
langsam ab. Schreibe doch die möglichen Ausgaben mal nicht übereinander.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Das Programm sieht dem hier ziemlich ähnlich, allerdings sind es hier 
LEDs statt Tastern und HCF4094 statt der 74HC165:
http://www.loetstelle.net/forum/viewtopic.php?p=11345

Ich nehme an, die Schaltung ist aber ähnlich, nur muss das 
Schieberegister parallel zu seriell wandeln statt umgekehrt.
So viele Schalter ordnet man üblicherweise in einer Diodenmatrix an, 
statt jeden einzeln anzuschließen.

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
das sieht so ähnlich aus.
Nur das noch 10K an VCC gehen, wegen Pullup.
Plan ist im Anhang.
Würde ich gerne machen als Matrix aber die anderen brauche ich für 
Ausgänge.
( Servos usw. )
Gruß
Peter

von MWS (Gast)


Lesenswert?

Peter schrieb:
> Liege ich bei denn Code auf dem Holzweg?
Etwas.
Betrachtet man das Timing-Diagramm im 74165-Datenblatt, dann wird PL 
(Pin1) zu Beginn eines Auslesezyklus auf Low gezogen, das latcht die 
Eingänge in's Schieberegister. Nachdem PL auf High zurückgeht, werden 
die Daten rausgeschoben bzw. kaskadiert über DS (Pin10) durch die 
anderen 74165 durchgeschoben.

Betrachtet man populate_shift_register(), dann hat das wenig 
Ähnlichlkeit damit. Hinzu kommt, dass Pulseout() den Portpin toggelt, um 
einen kurzen Low-Impuls zu erreichen, muss der Pin vorher High sein, das 
isser aber nicht.

Ein paar Sachen umgestellt und es sollte gehen, Pulseout() vor Shiftin() 
und Sr_Load-Pin vorher auf High setzen.

von Wolfgang (Gast)


Lesenswert?

Peter schrieb:
> Würde ich gerne machen als Matrix aber die anderen brauche ich für
> Ausgänge.
> ( Servos usw. )

Statt der 74HC165 (wieso eigentlich 2 und nicht 3 bei 24 Tastern) kannst 
du doch genauso gut einen 74HC165 und einen 74HC595 o.ä. an das SPI 
hängen. Damit könntest du bequem eine Matrix mit 24 Tasten abfragen und 
hättest sogar noch 5 Leitungen frei - jedenfalls solange keine 
Mehrfachtastendrücke erkannt werden müssen. Was hat das mit Servos o.ä. 
zu tun?

von MWS (Gast)


Lesenswert?

Peter schrieb:
> ich versuche gerade mit einem Atmega32 ein 74HC165 aus zu lesen.

Warum lädst Du Deinen Kram in mindestens zwei Foren gleichzeitig ab?
Nennt sich Crossposting und auf sowas steh' ich nicht.
Lass also fortan andere für Dich denken, ich bin raus.

von Forist (Gast)


Lesenswert?

MWS schrieb:
> Warum lädst Du Deinen Kram in mindestens zwei Foren gleichzeitig ab?

Dann nenne doch auch gleich Ross und Reiter
https://bascomforum.de/index.php?thread/990-74hc165-atmega32-mit-24-taster/

von MWS (Gast)


Lesenswert?

Forist schrieb:
> Dann nenne doch auch gleich Ross und Reiter

Warum? Dem TE muss ich es nicht beweisen, der weiß schon was ich meine. 
Es wäre dessen Aufgabe auf sein Rundumgefrage hinzuweisen.
Würde er darauf hinweisen, fände ich es im übrigen ok, weil fair 
gegenüber dem Antwortenden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.