Forum: Mikrocontroller und Digitale Elektronik Atmega16 und HD44780


von Michael (Gast)


Lesenswert?

Hallo Leute!

Wie schon im Betreff geschrieben steht benutze ich ein 
HD44780-kompatibles Display (W162B-N3LW) an einem Atmega16 und den 
Fleury-Libs. Mein Problem ist das es zu Anzeigefehlern auf dem Display 
kommt, also die Zeichen werden verstümmelt.
Wenn ich im AVR-Studio die Taktrate auf 16Mhz (statt den benutzten 8Mhz) 
stelle funktioniert das Ganze wunderbar, also eine Timing-Kiste. 
Allerdings passt mir das nicht so richtig, bzw. ich würde gern wissen 
warum das nicht geht... Ich verwende einen externen 8Mhz Quarz (Fuses 
stehen auf ext.Chrystal High Frequ.).
Also damit sollte die Taktrate ja genügend genau sein... Kann es sein 
das das Display einfach ein wenig lahm ist und ich die Zeiten in der 
lcd_routines.c anpasst werden müssten? Hat evtl. jemand Erfahrungswerte 
welche Werte man verwenden sollte?

Besten Dank im Voraus!

Grüße Michael

von Thomas Frosch (Gast)


Lesenswert?

Hört sich seltsam an! Wenn es tatsächlich ein Timing Problem ist müsste 
es umgekehrt sein, also bei 8MHz funktionieren und bei 16Mhz nicht.

Aber du könntest einfach mal bei der enable funktion ein paar mehr nops 
einfügen. Eventuell funktioniert es dann schon!

von Klaus W. (mfgkw)


Lesenswert?

Michael schrieb:
> Kann es sein
> das das Display einfach ein wenig lahm ist und ich die Zeiten in der
> lcd_routines.c anpasst werden müssten?

Kann sein, probiere es doch einfach.

> Hat evtl. jemand Erfahrungswerte welche Werte man verwenden sollte?

Wenn es mit größeren Pausen geht, hast DU jetzt die Erfahrungswerte.

von Klaus W. (mfgkw)


Lesenswert?

Thomas Frosch schrieb:
> Hört sich seltsam an! Wenn es tatsächlich ein Timing Problem ist müsste
> es umgekehrt sein, also bei 8MHz funktionieren und bei 16Mhz nicht.

Wieso?
Wenn er mit 8 MHz läuft, der Compiler aber von 16 ausgeht, machen die 
delay_... mehr Pause.

von Thomas Frosch (Gast)


Lesenswert?

In diesem Fall wäre es dann aber ein Programmierfehler. Delays sollten 
dann auch auf 8MHz angepasst werden.

von Michael (Gast)


Lesenswert?

Nachdem ich wusste das es gehen könnte hab ich jetzt nochmal mit den 
Timings gespielt...Vor meiner Anfrage zwar auch schon einmal, aber wie 
ich jetzt gemerkt habe war ich einfach zu zaghaft - Es reicht nicht die 
Timings zu verdoppeln wie ich erst angenommen habe. (von wegen 8Mhz zu 
16Mhz...)
Na mal schauen ob die die geänderte Lib bewährt, bisher scheint es zu 
klappen...

Danke für eure Antworten!

Beste Grüße Michael

von xcdark (Gast)


Lesenswert?

Thomas Frosch schrieb:
> In diesem Fall wäre es dann aber ein Programmierfehler.

Nicht zwingend, schließlich kommen andere Displays auch mit dem Timing 
zurecht. Vielleicht hat es schlichtweg einen billigen Controller.

von Markus B. (mbp-bayern)


Lesenswert?


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.