Forum: Mikrocontroller und Digitale Elektronik LCD-Tutorial


von Samy (Gast)


Lesenswert?

Guten Abend

Ich habe mal das Tutorial durch gemacht und mein LCD zeigt auch nach
anfänglichen Schwierigkeiten das Wort "Test" an. HAbe da aber ne
kleine Frage zum Source-Code!

.include "8515def.inc"        ;ggf. anpassen

.def temp1 = r16
.def temp2 = r17
.def temp3 = r18

           ldi temp1, RAMEND  ;Stackpointer initialisieren
           out SPL, temp1


           ldi temp1, 0xFF    ;Port D = Ausgang
           out DDRD, temp1

           rcall lcd_init     ;Display initialisieren
           rcall lcd_clear    ;Display löschen

           ldi temp1, 'T'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 'e'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 's'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 't'     ;Zeichen anzeigen
           rcall lcd_data

loop:
           rjmp loop

.include "lcd-routines.asm"            ;LCD-Routinen werden hier
eing

Und zwar zur Zeile ldi temp1, 'e'! Woher hat der Assempler die Info
das er für 'e' den Wert 01100101 in das Register r16 schreiben
soll????????
In der Definitionsdatei "8515def.inc" habe ich  nix gefunden! Muß man
sich so ne Definitionsdatei selber schreiben oder gibt es da was im
Netz? Für jeden Buchstaben immer ein 8Bit Wort zu schreiben ist etwas
umständlich!

von Chaldäer (Gast)


Lesenswert?

Hallo Samy,

Das macht der Compiler automatisch.
Genauso wie er aus 'ldi temp1, 0xFF' die lange Kette aus Einsen
bildet.
Schau Dir das ganze mal im Debugger (AVR-Studio oä.) an.

Gruß,
Chaldäer

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Samy, der Assembler setzt für Zeichen in '' automatisch den
entsprechenden ASCII-Code ein.

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
Noch kein Account? Hier anmelden.