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
> 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)...
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
Hat vll. noch jemand eine Idee? Hoffe man kann zusammen eine Lösung erarbeiten. Harald
> 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)...
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
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.