LCD Laufschrift

Gast #2135013
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;
}

?
Gast #2135033
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
Gast #2135987
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.

?
#2136010
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...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.