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!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.