LCD Timer sekunden Takt zu langsam

Gast #3908165
Lesenswert?

Hallo,

Ich habe einen LCD Timer den ich hier bei mikrocontroller.net gefunden 
habe gebaut.

mein Problem jetzt, 1 Sekunde dauert etwa 4 sekunden und bin mir nicht 
sicher wo der Fehler liegt entweder im aSm Code oder an der schaltung.

Wenn ich den Timer starte, verschwindet mein Text vom 2x16 LCD Display, 
erst wenn ich am Poti für den kontrast schraube bekomme ich es wieder 
sichtbar.

Ich habe es nach dem Schaltplan von folgendem Thread gebaut:
Beitrag "LCD-Timer für Belichtungsgerät"
#3908209
Lesenswert?

TobiS schrieb:
> Zum Fuse bit,
>
> wie genau stell ich das um, in meinem code habe ich folgendes gefunden:
>
> ; ***** sonstige Zuordnungen *****
>
> .equ  XTAL    = 4000000
>
> muss das weg oder Umgeschrieben werden?

Das Umstellen geht nur mit einem Programmer.

Die Angabe im Programm dient nur dazu, dass ggf. vom Assembler 
berechnete Konstanten automatisch den richtigen Wert erzeugen.
Beispiel: Baudrate des UART einstellen; die Konstante für den 
Bauraten-Generator hängt von der Taktfrequenz ab.

Gruß Dietrich
#3908213
Lesenswert?

TobiS schrieb:
> muss das weg oder Umgeschrieben werden?

das kommt auf die Wirklichkeit an

ist die 4MHz dann kann das so bleiben, ist deine Wirklichkeit anders 
muss es geändert werden.

PS Du kannst die Wirklichkeit im Code nicht ändern, die wird bestimmt 
von fuse setting und angeschlossenem Quarz

also:
ist ein Quarz am Xtal 1 + 2 Eingang?
hast du die fuse auf ext. crystal geändert?
hast du die fuse auf clkdiv8 oder nicht?
Gast #3909269
Lesenswert?

Ok, habs,

war CKOPT fuse bit.


dennoch habe ich das Problem mit dem Display, wenn ich meinen Timer 
starte mit der Voreingestellten Zeit, verschwindet mein text, das is 
aber nur der Kontrast, ich verstehe die Ursache nur nicht, wenn ich am 
(Poti) Kontrastregler rekalibriere bekomme ich es wieder sichtbar, wenn 
aber der timer ausgelaufen ist, wird der routine text mit zu viel 
Kontrast, eigentlich alle pixel auf einmal angezeigt.

(Es ist nur der Kontrast des LCD was sich selbst ändert?)
#3909279
Lesenswert?

Zeig mal dein Programm.
Wenn dein Programm wie wild das LCD löscht und den Text wieder neu 
hinklatscht, kann das schon mal aussehen, als ob der Kontrast massiv 
abnimmt. Allerdings hab ich noch nie beobachtet, dass man das mit dem 
Kontrastpoti einigermassen ausgleichen könnte. Ich habs aber ehrlich 
gesagt auch noch nie probiert.

Abgesehen davon gibt es keinen sinnvollen Zusammenhang zwischen dem 
Kontrast des LCD und deinem Programm. Ausser eben, wenn du wie wild das 
LCD löscht und den Text neu hinmalst. Dann flackert es wie Sau und da 
das LCD dann 20% der Zeit tatsächlich leer ist, nimmt der Kontrast ab.

Aber ohne das Programm gesehen zu haben, ist das alles Spekulation.
Gast #3909403
Lesenswert?

Also um es genauer Auszudrücken, wenn ich den timer starte und der 
kontrast so ziemlich auf 0 geht muss ich den poti nach links drehen um 
den text wieder sichtbar werden zu lassen. Wenn abgelaufen oder gestoppt 
ist der kontrast zu hoch gestellt und muss am poti rechts drehen zum 
ausgleichen, immer son hin und her.
#3909492
Lesenswert?

Route 66 schrieb:
> Karl Heinz schrieb:
>> Ausser eben, wenn du wie wild das
>> LCD löscht und den Text neu hinmalst. Dann flackert es wie Sau und da
>> das LCD dann 20% der Zeit tatsächlich leer ist, nimmt der Kontrast ab.
>
> Genau das ist die Ursache!

Ich hab zwar versucht, im Code die Stelle zu finden, aber das ist gar 
nicht so einfach, bei dem vielen hin und her Gehüpfe. Gefunden hab ich 
allerdings nichts, das muss aber nicht viel heissen.

> Also: Programmkonzept ändern.

Und vor allen Dingen nicht so unübersichtlich schreiben. Ich kann mir 
wirklich nicht vorstellen, warum der Code (Anmerkung: meiner Meinung 
nach) so dermassen unübersichtlich sein muss. Der ist Wasser auf die 
Mühlen all derjigen, die immer wieder sagen, dass man solche Dinge nicht 
in Assembler schreibt, weil es einfach nicht wartbar ist.

Allerdings: der Code stammt ja aus einem fertigen Projekt. Ich kann mir 
nicht wirklich vorstellen, dass das dem Original-Autor nicht auch 
aufgefallen wäre. Nur: ich kann mir aber auch sonst keinen Zusammenhang 
vorstellen. Einzig ein Einbruch in der Versorgungsspannung, wenn das 
Relais geschaltet ist, wäre noch denkbar.
#3910648
Lesenswert?

Route 66 schrieb:
> Karl Heinz schrieb:
>> Ausser eben, wenn du wie wild das
>> LCD löscht und den Text neu hinmalst. Dann flackert es wie Sau und da
>> das LCD dann 20% der Zeit tatsächlich leer ist, nimmt der Kontrast ab.
>
> Genau das ist die Ursache! Also: Programmkonzept ändern.

Nach nochmaliger Inspektion des Spaghetti-Kodes muß ich kbuchegg Recht 
geben!
Allerdings liegt die schlechte Lesbarkeit nicht an der Verwendung von 
Assembler generell. Es läßt sich einfach nur ein miserabler 
Programmierstil erkennen.
Die Wartbarkeit und Fehlerträchtigkeit von Code hat mit der 
Programmiersprache überhaupt nichts zu tun.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren