www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4x40 LCD Library


Autor: Frank I. (icelase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich bin relativ neu in der Szene (hab mir vor kurzem ein STK500 
gekauft).

Mein Problem ist das ich ein 4x40 LCD ansteuern möchte.

Beide Enable PINs sind angeschlossen und funktionieren auch "fast".
Benutz dazu die Library von P.Fleurys.
Da die aber keine zwei Controller ansteuern kann, hab ich ein bisschen 
im Code herumgepfuscht... das will aber nicht so richtig (und ist auch 
ziemlich Quick&Dirty ;-) ) kann zwar beide Controller ansteuern... 
bekomme aber hin und wieder nach einem Reset/Power off/on  komischen 
Datenmüll auf dem 2. Controller ;-)

Gibt es vielleicht schon vorgefertigte LCD librarys die 4x40 LCDs 
beherschen? oder vielleicht eine angepasst lcdlibrary version?

Benutz Avr-Studio sowie den avr-gcc Compiler

Danke.

Grüße,
Frank

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Da die aber keine zwei Controller ansteuern kann, hab ich ein bisschen
>im Code herumgepfuscht... das will aber nicht so richtig (und ist auch
>ziemlich Quick&Dirty ;-)

Na dann würde ich doch mal alles sauber aufsetzen, und dann klappt es 
auch...

Autor: Franke Michael (appletree)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank.
Ich muss Dennis recht geben.
Nimms erstmal auseinander und schreib es neu.
Hat den vorteil das mehr oder weniger genau weißt was du machst.
Tipp.
Falls du das nicht eh schon gemacht hast dann kontrolliere nochmal alle 
Steuerbefehle.Da gibt es gerne mal Unterschiede.Also muss das richtige 
Datenblatt her.
Wegen dem Verhalten beim Reset, es könnte an der Initialisierung liegen
Viel Erfolg.

Autor: Frank I. (icelase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also im Code selbst "switch" ich einfach zwischen den beiden 
Controllern.

Da ja alles Parallel angeschlossen ist ( außer die beiden Enable Pins E1 
und E2 ) sollte das doch eigentlich möglich sein?


Habe jeweils die funktionen die die Enable pins high/low setzen 
angepasst:
void setController(uint8_t controller) {

use_controller = controller;

}


void lcd_e_high() {

   if (use_controller == 1) {
      LCD_E1_PORT  |=  _BV(LCD_E1_PIN);
   } else if (use_controller == 2) {
      LCD_E2_PORT  |=  _BV(LCD_E2_PIN);
   }

}


void lcd_e_low() {

   if (use_controller == 1) {
      LCD_E1_PORT  &= ~_BV(LCD_E1_PIN);
   } else if (use_controller == 2) {
      LCD_E2_PORT  &= ~_BV(LCD_E2_PIN);
   }

}


Und logischerweise Initialisiere ich dann beide Controller, und schreib 
auf beiden das gleiche:


  setController(1);
        lcd_init(LCD_DISP_ON);
  lcd_clrscr();



  setController(2);
        lcd_init(LCD_DISP_ON);
  lcd_clrscr();

setController(1);
lcd_gotoxy(0,1);
lcd_puts("blabla");


setController(2);
lcd_gotoxy(0,1);
lcd_puts("blabla");



Manchmal kommt Datenmüll ( eher wenn ich dem Strom ganz weg nimm und 
wieder gib ) manchmal nicht.
Hat wohl irgendwas mit den Timings zu tun. Ein Delay zwischen dem 
Controller wechseln bringt irgendwie auch nix :-(

Bin mit meinem unprofessionellen C Kentnissen eigentlich am Ende.
Einer vielleicht noch ne Idee wo ich ansetzen könnt?


Grüsse,
Frank

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.