mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Variable zur Laufzeit ändern


Autor: Onur Demir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte einen derzeit binären Temperaturwert dezimal auf einen LCD
anzeigen lassen. Für die Umwandlung von binär nach dezimal gibt es ja
genug Codes. Wie gebe ich aber dann die dezimale Zahl aus? Da ich meine
Codes in Assembler schreibe, frage ich mich wie man das am besten
anpacken sollte. Mit einem z-pointer? Ich dachte immer, dass ich die
Ausgabe mit einem Z-pointer nur dann realisieren kann, wenn ich den
String, bzw. die Zahlen vorher definiert habe. Aber wie mache ich das
zur Lauifzeit, wenn ich alle 5 Sekunden ein Wert ausgeben will?

MFG

Onur

Autor: Rick D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du stellst die Zahlen im BCD-Code dar und vor der Ausgabe auf dem LCD
addierst du 0x30 hinzu. Dadurch bekommst du den HEX Wert des
ASCII-Zeichens ;o)
Hoffe mal ich habe dein Problem richtig verstanden.

Autor: Die Waldfee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@onur: Vielleicht hilft Dir ja der Hinweis, dass man Daten im RAM
jederzeit ändern kann etwas auf die Sprünge ;-)

Autor: Onur Demir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich muss ja die Daten z.B: 22,5°C ausgeben. Ich habe halt noch ein
Verständnisproblem:

ldi ZL, LOW(daten*2)
ldi ZH, HIGH(daten*2)
        lpm
        mov R16, R0
        out PORTB, R16
daten:
.db 0b10101010                 // Hier sollten 22,5°C als BCD stehen.

Die Ausgabe auf einem LCD sollte ich doch mit der obigen Variante
machen oder? Aber "daten" ist statisch! Meine Werte ändern sich alle
5 Sekunden. Kann es sein dass ich da falsch denke? Habe ich ein
Denkfehler?

MFG

Onur

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit LPM (Load Program Memory) greifst du auf Programmspeicher (Flash)
zu, dort stehen nur Konstanten.

Schau dir mal das SRAM an und die Befehle, die auf SRAM zugreifen. Da
gibt es auch Zugriffe über Pointer (LD ST). Die Tabelle Instruction-Set
im Datenblatt (ausdrucken!!) und die Onlinehilfe des AVR-Studios sind
deine Freunde.

...

Autor: Die Waldfee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls Dir das mit dem SRAM zu kompliziert ist, kannst Du die Daten auch
in den Registern halten (ist halt nicht so elegant, aber möglich).
Offensichtlich ist bislang der RAM völlig an Dir vorbeigegangen...

Autor: Onur Demir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

es macht Spaß die Antworten zu lesen. Lasst mich mal ein bißchen selber
recherchieren, dann komme ich mit präziseren Fragen an euch. Trotzdem
Dankeschön.

Grüße

Onur

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.