www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD flackert - HD44780 kompatibel, Peter Fleury, Atmega32, C


Autor: HeGr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo! Mein Bordcomputerprojekt hat es in die betaphase geschafft. Danke 
an alle, die mir geholfen haben!!
Nun hat jemand das Problem, dass die rechte Hälfte seines 16*2 Displays 
"flackert". Ich kann das bei mir nachvollziehen indem ich das Display 
stark schräg halte. Wenn ich aber in normalem Winkel draufschaue, dann 
ist alles ruhig...
Bevor ich hier jetzt ewig Code und Schaltpläne poste - vielleicht weiss 
ja jemand etwas aus dem Stehgreif, weil er das Problem auch schon mal 
hatte.
Nur so viel: 4 bit, Datenleitungen 0-3 liegen auf Masse. Sonst 
funktioniert alles Top.

Autor: Klaus R. (klaus2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...updatefrequenz zu hoch?

Klaus.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,
ich vermute das du eine Schleife im Programm hast in der das Display 
ständig aktualisiert wird ohne das sich an den Einträgen was ändert, 
dadurch flackert es. Programmier es am besten so, das es nur 
aktualisiert wird wenn sich was fürs Display ändert.
Aber wie gesagt könnte auch was anderes sein.

Autor: HeGr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ich dachte zu niedrig und hab sie immer höher gesetzt ;)
Ich werde das mal so umstricken, dass nur neu beschrieben wird, wenn 
sich auch was ändert. Danke!

Autor: HeGr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
updatefrequenz war es nicht. ich habe es jetzt folgendermaßen gemacht:

//globale variable in main:
uint16_t alterwert=0;

void ausgabe(uint16_t *alterwert)
{
//in functions:
uint16_t neuerwert=0;
for(int i=0;i<7;i++) neuerwert+=zeichenfolgefuerslcd[i];

if(neuerwert!=*alterwert) ausgabe(zeichen...);
*alterwert=neuerwert;
}

ausgabe(&alterwert);

leider funktioniert das nicht so ganz. zu beginn, wenn ich nix 
anschliesse flackert nix. wenn ich dann eine feste frequenz dranhänge 
und zB U:  880 dasteht, dann flackert die 880. komisch da ja eigentlich 
nix überschrieben werden dürfte.
oder hab ich mich irgendwo verhaspelt?

Autor: HeGr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der zweite ausgabe-aufruf steht natürlich nur symbolisch für die lcd 
ausgabe. ich habe keine zwei funktionen mit dem gleichen namen...

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal nach ob die negative Spg. fürs LCD konstant ist (bzw. die 
Spannung für die Kontrasteinstellung).

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bin mir nicht sicher obs der Fehler ist.
probier mal beim if
if(neuerwert!=*alterwert) *alterwert=neuerwert;
ausgabe(zeichen...);
}

da nun zu erst *altwert auf den neuesten Stand gebracht wird und
danach die Funktion ausgabe aufgerufen wird.
Weis jetzt nicht wie ausgabe aufgebaut ist, aber ich vermute
das du dann nicht mehr zurückspringst damit er
*alterwert=neuwert
machen kann.
Probiers mal aus wie ichs gschrieben hab vllt klappts

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.