mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Eingaben in Datenspeicher schreiben


Autor: Patrick Reh (Gast)
Datum:
Angehängte Dateien:
  • src.txt (417 Bytes, 155 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal nach dem Register FSR und der Adresse INDF.

Tabellen werden bei den 12-14bit PICs über angesprungene RETLW Befehle
realisiert.

Autor: Patrick Reh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...)

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Patrick Reh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, Danke für die Tips. ich werde mir mal anschauen wie ich das mache...

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.