Forum: Mikrocontroller und Digitale Elektronik LCD flackert in While Schleife


von Lokus P. (derschatten)


Lesenswert?

Ich hab mal ein wenig mit einem 2x16 LCD herumprobiert und die Ausgabe 
in mein Program implementiert.

Nach der Library von Volker Oth's 
http://homepage.hispeed.ch/peterfleury/group__pfleury__lcd.html

Wenn ich die Ausgabe nun außerhalb der While Schleife plaziere:
1
int main(void)
2
{
3
  init();                            // Einschaltsequenz starten
4
5
    /* initialize display, cursor off */
6
    lcd_init(LCD_DISP_ON);
7
8
        lcd_clrscr();
9
    lcd_puts("LCD Test Line 1\n");
10
11
  nKonfig = eeprom_read_byte(00);                // Aktuellen Wert aus EEPROM auslesen
12
  Marker = nKonfig;                      // EEPROM-Wert für Marker speichern
13
14
  sei();                            // Interrupts aktivieren
15
16
  while(1)
17
  {
18
...

dann wird die Ausgabe normal angezeigt.

In der While Schleife flackert sie aber und ist kaum zu lesen.

Woran liegt das?
Hat das vielleicht mit meinem laufenden Timer Interrupt zu tun?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wohl nicht

  while(1)
  {
    lcd_clrscr();                  // LCD Löschen
    lcd_puts("LCD Test Line 1\n"); // LCD Beschreiben
  }

Klar flackert das in der Schleife, wenn die Schleife schnell 
abgearbeitet wird - Löschen, Schreiben, Löschen, Schreiben, wie ein 
Irrer! Gib doch mal nur jedes x.te Mal was aus oder nur wenn sich die 
Ausgabe wirklich ändern soll. Du musst das LCD nicht dauernd refreshen!

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.