Forum: Compiler & IDEs LCD Laufschrift


von NBLM (Gast)


Lesenswert?

Abend, ich hab ein kleines Problem mit meinem LCD Display. Die 
Ansteuerung funktioniert bestens nur komm ich mit den Befehlen aus der 
lcd lib. (Die aus dem Tut hier) nicht zurecht. Die Befehle 
'LCD_SHIFT_RIGHT' und LEFT sollen ja den String um ein Zeichen 
verschieben, oder verstehe ich da was falsch?

Fakt ist das der Text nur starr herum steht.

So sieht das Programm aus:
int main (void){

  MCUCSR = (1<<JTD); //disable JTAG
  MCUCSR = (1<<JTD);
  lcd_init();
  lcd_home();
  lcd_string("text");
  i=1;
  for(i=1;i<3;i=i+1){
    lcd_command(LCD_SHIFT_RIGHT);
    _delay_ms(500);
  }
  for(i=3;i>0;i=i-1){
    lcd_command(LCD_SHIFT_LEFT);
    _delay_ms(500);
  }
  while(1){
  }
  return 0;
}

?

von Joachim (Gast)


Lesenswert?

Schau dir mal in deiner Bibliothek LCD_SHIFT_RIGHT etc genau an. Prüf 
mal ob da die Bits richtig gesetzt werden.

Die Schiebefunktion fordert, daß laut Datenblatt vom 44780 bit zwei und 
drei entsprechend gesetzt werden müssen, andere bits dürfen z.T. nicht 
gesetzt sein.



So sieht das in meiner PIC18 Bibliothek aus:

//xx = don't care
/// cursor shift left: 0b000 1 00 xx
#define SHIFT_CUR_LEFT    0b00010000   /* Cursor shifts to the left   */

/// cursor shift right: 0b000 1 01 xx
#define SHIFT_CUR_RIGHT   0b00010100  /* Cursor shifts to the right  */

///disp shift left: 0b000 1 10 xx
#define SHIFT_DISP_LEFT   0b00011000  /* Display shifts to the left  */

///disp shift right: 0b000 1 11 xx
#define SHIFT_DISP_RIGHT  0b00011100  /* Display shifts to the right */



Joachim

von ... (Gast)


Lesenswert?

versuchs mal mit:
1
lcd_command(LCD_SET_SHIFT | LCD_DISPLAY_SHIFT | LCD_SHIFT_RIGHT);

von NBLM (Gast)


Lesenswert?

Ja jetzt gehts, wusste nicht das ich die übergeordneten Befehle noch 
mitnehmen muss. Big thanks!

von NBLM (Gast)


Lesenswert?

Eine Frage hätte ich da noch, wenn ich eine Laufschrift haben möchte die 
nur
in eine Richtung läuft (und am Anfang wieder erscheint) wie kann man das 
bewerkstelligen ? Ich hab ein 4 Zeilen Display, und die 4 läuft er auch 
alle durch. Ich will das aber nur in einer Zeile haben alles andere soll 
still stehen.

?

von Bernhard M. (boregard)


Lesenswert?

NBLM schrieb:
> Eine Frage hätte ich da noch, wenn ich eine Laufschrift haben möchte die
> nur
> in eine Richtung läuft (und am Anfang wieder erscheint) wie kann man das
> bewerkstelligen ? Ich hab ein 4 Zeilen Display, und die 4 läuft er auch
> alle durch. Ich will das aber nur in einer Zeile haben alles andere soll
> still stehen.
>
> ?

Dann must Du das selbst programmieren, mit Timer...also Display immer 
wieder neu beschreben, mit verschobenen Daten...

von ... (Gast)


Lesenswert?

Einfach mal hier im Forum die Suche benutzen!
Dann findet man jede Menge, z.B.:
Beitrag "Laufschrift auf dem HD44780"

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.