Autor |
Matrixtastatur mit ATmega8 |
|
|
|
|
BID = 410499
hansmaulwurf Gesprächig
Beiträge: 194
|
|
Hallo Elektroluchs...wollte mich nochmal melden...
habe deine Plan mal abgeändert !
würde das nicht so auch mit den Pull Down Widerständen Funktionieren ?
Vielen Dank für eure Hilfe
mfg hans
|
|
BID = 410954
elektroluchs Gesprächig
Beiträge: 194 Wohnort: Austria
|
|
Hallo hansmaulwurf!
Also um deine Frage zu beantworten. Vergiss die Pull-Down Widerstände, sie würden nur zu Fehlfunktionen führen. Wenn du dir alle Beiträge zu diesem Thema durchliest und dir auch mein Programm einmal anschaust, wirst du sicher verstehen warum
Gutes Gelingen noch bei deinem Projekt!
mfg
elektroluchs
PS:An dieser Stelle möchte ich noch meinen letzten Schaltplan verbessern. Die Widerstände bei der Tastatur sind nicht notwendig, es reichen auch die Dioden allein für eine einwandfreie Funktion.
|
|
BID = 411653
hansmaulwurf Gesprächig
Beiträge: 194
|
mhh..ok
Also entnehme ich es deinem Programmcode richtig ?
ldi temp1,0xFF
out PORTB,temp1 ;Alle Ausgänge auf '1' und Pull-Ups an den Eingängen
Alle "Ausgänge" sind PB0 bis PB7 , da hast du ja die internen Pull ups geschaltet !?
Nachher bei der Abfrage schreibst du ...
sbis column1 ;überprüfen, ob ein Eingang '0' ist
also sind deine Eingänge ja quasi PBo bis PB3 ?
...Ich habe ja jetzt ein 3x4 Keypad...würde ich dann doch auch an die vier zeilen die dioden einbauen ?
danke für deine hilfe
|
BID = 411689
elektroluchs Gesprächig
Beiträge: 194 Wohnort: Austria
|
Also ich verstehe deine Anfrage bzgl. den Ein- und Ausgängen nicht so ganz, aber ich empfehle dir das Datenblatt des ATmega8 zu lesen, Kapitel I/O - Ports.
Da wird dann erklärt, was es mit DDRx, PORTX und PINx auf sich hat und wenn du anschließend nochmal meinen Code anschaust, ist dir hoffentlich einiges klarer.
Die Dioden brauchst du natürlich auch bei deiner Matrix, denn auch da kann es Kurzschlüsse geben
mfg
elektroluchs
|
BID = 411807
hansmaulwurf Gesprächig
Beiträge: 194
|
Hallo Elektrofuchs...
Gestern war ich ein wenig durcheinander...
ok... nochmal zu meinem Problem...
Meine Fragen wären:
(Datenblatt habe ich gelesen)
1) Ich brauche also 4 Dioden für die Zeilen ? oder 3 für die Spalten ?
2) habe mein Keypad am Port PD0 bis PD6 angeschlossen. Dabei werden leider auch die Schnittstellen TXD und RXD beledgt (PD0 und PD1).
- würde jedoch gerne noch einen USART Wannenstecker einbauen ! kann ich gleichzeitig mein Keypad und meinen USART an TXD und RXD anschließen ?
Danke für deine Hilfe
|
BID = 411964
elektroluchs Gesprächig
Beiträge: 194 Wohnort: Austria
|
Zitat :
| 1) Ich brauche also 4 Dioden für die Zeilen ? oder 3 für die Spalten ?
|
Du brauchst die Dioden an den Ausgängen, zur Vermeidung von Kurzschlüssen (wenn mehrere Tasten gleichzeitig gedrückt sind). In meinem Fall waren das die Zeilen.
ad2)
Ich bin nicht der Spezialist bei der Mehrfachverwendung von Pins, aber ich finde, dass es in diesem Fall besser ist, wenn du deine Pins nicht doppelt belegst. Ich glaube, dass das zu einem viel zu komplizierten Code führt, der sehr fehleranfällig ist.
Das einfachste wäre natürlich, wenn du deine Tastatur einfach woanders anschließt.
Ich hab es so gemacht, dass ich das Tastaturencoding einem ATtiny2313 überlasse und der gibt mir auf 5 Leitungen alle Infos, die ich brauche, somit wäre auch deine ser. Schnittst. frei.
Da das RS232 Protokoll aber auch in Software "emuliert" werden kann, kannst du deine ser. Schnittst. an beliebigen Pins nachbilden. Ich empfehle dir aber zu diesem Thema einen eigenen Thread zu starten, da ich dir da nicht so gut helfen kann.
mfg
elektroluchs
|