www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4x4 Matrixtastatur Problem


Autor: Harald (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich habe im Anhang ein Programm geschrieben um eine Tastatur abzufragen.
Ist nur ein Bruchteil des Programms. Das Problem ist, das es immer zu 
einer falschen Tastenausgabe kommt. Kann mir auch denken woran das 
liegt. Da RA0 und RA1 zu schnell gesetzt und nicht gesetzt werden. Hoffe 
ihr habt eine Lösung. Pull-Up Widerstände sind drin. Auch die Anzeige am 
LCD Display funktioniert. Eben nur die Abfrage geht so nicht.
Das Programm ist in Assembler geschrieben und läuft auf einem 
PIC18F2550.


Danke schon einmal für eure Hilfe!



Harald

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da RA0 und RA1 zu schnell gesetzt und nicht gesetzt werden.
Setze den Port A nicht direkt vor der nächsten Abfrage von Port C, 
sondern nach der letzten (quasi um einen Abfragezyklus 
vorauseilend)...

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, danke für deine schnelle Antwort. Wenn ich ehrlich bin kann ich 
dir momentan nicht so folgen :) Meinst du BCF bzw. BSF im jeweiligen 
Unterprogramm oder zu Beginn? Denn zu Beginn rufe ich ja das UP mit dem 
CALL-Befehl und kehre ja mit RETURN an die Stelle unter dem CALL-Befehl 
zurück.


Harald

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat vll. noch jemand eine Idee? Hoffe man kann zusammen eine Lösung 
erarbeiten.



Harald

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn ich ehrlich bin kann ich dir momentan nicht so folgen :)
Gegenfrage:
>> Da RA0 und RA1 zu schnell gesetzt und nicht gesetzt werden.
Was meinst du damit?

Zeig mal einen Schaltplan von deiner Matrix mit den beteiligten 
Bauteilen (gib den Bauteilen bitte Namen, damit man nicht vom "Taster 
rechts oben" reden muss)...

Autor: Harald (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang das Datenblatt!

RA0 = Pin1 der Matrixtastatur
RA1 = Pin2 der Matrixtastatur
RA2 = Pin3 der Matrixtastatur
RA3 = Pin4 der Matrixtastatur


RC0 = Pin5 der Matrixtastatur
RC1 = Pin6 der Matrixtastatur
RC4 = Pin7 der Matrixtastatur
RC5 = Pin8 der Matrixtastatur


Nun gebe ich nacheinander, erst auf Pin1 +5V dann auf Pin2 +5V usw. und 
frage jeweils die Eingänge RC0, RC1, RC4, RC5 ab.

RA0 bis RA3 sind Ausgänge

RC0, RC1, RC4, RC5 sind Eingänge




Danke für deine Bemühungen

Harald

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das der ganze Schaltplan?
>>>> Pull-Up Widerstände sind drin.
Und wo sind diese Pullup-Widerstände?

> Nun gebe ich nacheinander, erst auf Pin1 +5V dann auf Pin2 +5V usw. und
> frage jeweils die Eingänge RC0, RC1, RC4, RC5 ab.
Pullup-Widerstände gehen üblicherweise an +5V. Was meinst du, wie soll 
der uC die 5V vom Pin von den 5V vom Pullup unterscheiden?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.