Hallo, ich fange gerade mit der PIC - Programmierung (16f627) in Assembler an und habe ein Problem: Ich möchte Daten von einer Tastatur einlesen (3x4, eine typische Zahlentastatur). Für jede gedrückte Taste wird ein bestimmter Wert ermittelt und im SPeicher abgelegt. Natürlich wird der Wert beim nächsten Abfragen der Tastatur wieder überschrieben. Wenn ich jetzt die eingegebenen Werte nacheinander im Datenspeicher ablegen will (den ersten wert unter 0x30, den nächsten unter 0x31, 0x32, ...), wie kann ich das machen? Ich müsste jedes mal wenn eine Taste gedrückt wird, einen Zähler um 1 erhöhen und den tastenwert in die Speicherstelle schreiben, deren Wert dem aktuellen Zählerstand entspricht. So kann ich mir das vorstellen. ich hab aber keine Ahnung wie ich das in Assembler bewerkstelligen soll. Kann mir jemand helfen? Und ich habe noch eine Frage: Wenn ich einen Text zb auf einem LCD-Display ausgeben will, der fest im Programmspeicher eingespeichert wird, wie kann ich diesen Text definieren, ohne jedes Zeichen einzeln anzugeben? Siehe auch Dateianhang Vielen Dank für die Hilfe! Mfg patrick
Such mal nach dem Register FSR und der Adresse INDF. Tabellen werden bei den 12-14bit PICs über angesprungene RETLW Befehle realisiert.
Danke für den Tipp! Ich habs gleich ausprobiert und es wirklich einfach. Aber das mit den Tabellen versteh ich nicht so ganz, was hilft mir das bei dem String-Problem? (Kann sein, dass ich grade ein wenig auf der Leitung stehe...)
Verzeihe meine etwas agnostische Syntax, ich kenne die PICs nur ungefähr. Tabelle: retlw 'H' retlw 'a' retlw 'l' retlw 'l' retlw 'o' Und nun besteht die Aufgabe darin, abhängig vom Tabellenindex die richtige Adresse anzuspringen. Auch das läuft - typisch für PICs - etwas anders als allgemein üblich: siehe Register PCL, da kann man auch reinschreiben. Logischerweise nur durch Code innerhalb des gleichen 256-Byte Blocks möglich.
Ok, Danke für die Tips. ich werde mir mal anschauen wie ich das mache...
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.