LCD mit dem 4433

Gast #51481
Lesenswert?

Hallo, ich habe die LCD schaltung aus dem Tutorial aufgebaut und auch in
den Controller geladen, was soweit auch ganz gut geht.
Nur wenn ich jetzt den text "Test" ändern will z.b. in "Hallo" und
das programm wieder in den Controller lade, einschalte, kommt "Test".
Mein Programm sieht folgendermasen aus.

.include "4433def.inc"

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


           ldi temp1, LOW(RAMEND); LOW-Byte der obersten RAM-Adresse
           out SPL, temp1
           ldi temp1, HIGH(RAMEND); HIGH-Byte der obersten RAM-Adresse
           out SPH, temp1

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

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

           ldi temp1, 'H'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 'a'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 'l'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 'l'     ;Zeichen anzeigen
           rcall lcd_data

           ldi temp1, 'o'     ;Zeichen anzeigen
           rcall lcd_data


loop:
           rjmp loop

.include "lcd-routines.asm"        ;LCD-Routinen werden hier
eingefügt


Bin über alles dankbar. Jochen.
Gast #51482
Lesenswert?

Der Code scheint soweit zu stimmen.

Schreib mal statt:

           ldi temp1, LOW(RAMEND); LOW-Byte der obersten RAM-Adresse
           out SPL, temp1
           ldi temp1, HIGH(RAMEND); HIGH-Byte der obersten RAM-Adresse
           out SPH, temp1


nur:


           ldi temp1(RAMEND); LOW-Byte der obersten RAM-Adresse
           out SPL, temp1


Dann müsste es funktionieren.
Gast #51488
Lesenswert?

Naja weil bei yaap und bei Ponyprog kann es manchmal vorkommen das es
den AVR nicht ganz Löscht und dann funzt das neue Programm nicht. Also
immer 2 mal Löschen dann geht's.

Wahrscheinlich hat es drum nicht funktioniert.

Mfg. Merle

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren