RAM Startadresse Display

Gast #5805779
Lesenswert?

Hallo

Ich bin gerade dabei mir die lcd.h bzw lcd.c von Peter Fleury (wenn ich 
es noch richtig im Kopf habe) anzusehen.

Er definiert im lcd.h

// Set DD RAM Address --------- 0b1xxxxxxx  (Display Data RAM)
#define LCD_SET_DDADR           0x80

Wenn ich jedoch im Datenblatt des Controllers nachsehe
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
finde ich nirgends die StartAdresse des Display Data RAM.
Kann mir da jemand behilflich sein?

Dankeschön vielmals
Gast #5805851
Lesenswert?

Nop schrieb:
> Schüler schrieb:
>
>> Wenn ich jedoch im Datenblatt des Controllers nachsehe
>> https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
>> finde ich nirgends die StartAdresse des Display Data RAM.
>
> Seite 29, ganz oben sowie Seite 30, Zeichnung 13.

Ja, die Adresse kann sein für einen 1-Zeiler: 0x00-0x4F
2-Zeiler: 00H to 27H für Zeile 1 und 40H to 67H für Zeile 2

Ich verstehe nämlich gerade nicht, warum bei ihm die Startadresse nicht 
immer 0 ist, wenn er folgende Anweisungen schreibt:

data = LCD_SET_DDADR + LCD_DDADR_LINE1 + x;

void lcd_setcursor( uint8_t x, uint8_t y )
{
    uint8_t data;

    switch (y)
    {
        case 1:    // 1. Zeile
            data = LCD_SET_DDADR + LCD_DDADR_LINE1 + x;
            break;
...

Wieso ist die Startadresse 0x80 und nicht 0x20?
Das ist doch weder in der Zeile 1 noch in der Zeile 2 gegeben.
Was übersehe ich da?
Gast #5805860
Lesenswert?

Harry L. schrieb:
> Ein gesetztes höchstes Bit signalisiert dem Controller auf dem
> Display,
> daß sich in den unteren 7 Bit die DDRAM-Adresse befindet.

Vielen Dank

Dass heisst indirekt also auch, dass zum Lesen des Busy Flags nur DB7 
gelesen werden muss.
Die restlichen Bits mit A gekennzeichnet kann ich in diesem Fall 
ignorieren.

S.30
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

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