LCD autoscroll

Hallo,

In de datasheet van de Hitachi HD44780U LCD controller staat het volgende rond de "entry mode set" instructie (pagina 26):

S: Shifts the entire display either to the right (I/D = 0) or to the left (I/D = 1) when S is 1. The display does not shift if S is 0.

Als S=1 en I/D=1 blijft de cursor staan en wordt tekst links van de cursor uitgelijnd.

c code:


void setup {
    lcd.begin(16, 2);
    
    lcd.cursor();
    lcd.autoscroll();
    
    lcd.leftToRight();
    lcd.setCursor(15,0);
    lcd.print("ABCD");
}

http://users.telenet.be/stevevandenbussche/Afbeeldingen/lcd_autoscroll_left.png
Ok dit klopt, nu het omgekeerde.

Als S=1 en I/D=0 blijft de cursor staan maar wordt tekst rechts van de cursor uitgelijnd.

c code:


void setup {
    lcd.begin(16, 2);
    
    lcd.cursor();
    lcd.autoscroll();
    
    lcd.rightToLeft();
    lcd.setCursor(0,0);
    lcd.print("DCBA");
}

http://users.telenet.be/stevevandenbussche/Afbeeldingen/lcd_autoscroll_right_fault.png
Duidelijk niet correct, de cursor zou op (0,0) moeten staan met rechts er van de tekst "ABCD".

Vreemd is wel als de tekst 'x' karakters lang is en je plaatst de cursor 'x' karakters ver het wel werkt, bv x=4:

c code:


void setup {
    lcd.begin(16, 2);
    
    lcd.cursor();
    lcd.autoscroll();
    
    lcd.rightToLeft();
    lcd.setCursor(4,0);
    lcd.print("DCBA");
}

http://users.telenet.be/stevevandenbussche/Afbeeldingen/lcd_autoscroll_right_correct.png

Iemand een idee wat de oorzaak is ?

Steve

Arco

Special Member

Ik gebruik die 16x2...20x4 displays vaak, maar die functie gebruik ik nooit. Ik schrijf gewoon de hele tekst opnieuw.
(voor zo'n klein character display maakt 't niks uit. Bij grote grafische displays wel)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Ik heb nog wat verder gezocht maar kan geen verklaring vinden. Het is idd een functie die je zelden gebruikt dus ga ik het ook zo laten.