Forum: Mikrocontroller und Digitale Elektronik ATmega-LCD-schwache Zeichen


von Jan B. (Firma: RP-Plating) (kirchner)


Angehängte Dateien:

Lesenswert?

Ich habe an einen ATmega 644P ein 4*20 Punktmatrix Display 
angeschlossen.
Programiersprache: Bascom-AVR
Fehler: Kontrast siehe Bild
1
$regfile = "m644adef.dat"
2
$crystal = 8000000 
3
$hwstack = 40
4
$swstack = 40
5
$framesize = 40
6
7
Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0
8
Config Lcd = 20 * 4
9
Config Lcdbus = 4
10
11
Initlcd
12
Waitms 700
13
Cls
14
15
Do
16
Key = Getkbd()
17
Lcd Key
18
Lcd Cnt
19
Waitms 100
20
Loop

Es zeigt in der
1. Zeile und der 2. Zeile für
8 Stellen
nur einen ganz schwachen Kontrast aber die richtigen Zeichen.

Ich habe bereits getestet:

1. ein zweites größeres Display auch 4*20 Zeichen - gleicher Fehler
2. anderes Kabel genutzt - gleicher Fehler
3. von PortB auf Porta gewechselt - gleicher Fehler
4. mit internem Takt, externem Quarz (16MhZ und 20Mhz) getestet - 
gleicher Fehler
5. Initialisierungszeit verkürzt und verlängert
6. mit "Locate"Befehl positioniert - gleicher Fehler
7. Fuse "JTag" auf enable

irgendwie fällt mir nichts mehr ein

von Paul Baumann (Gast)


Lesenswert?

Der Stecker gefällt mir nicht. Jeder 2. Kontakt ist für Masse 
vorgesehen,
aber Du hast Gott sei Dank die Adern nicht angeschlossen, sonst ginge
es garnicht. Was aber passiert ist, daß die Kontaktpins des LCD durch-
kontaktiert sind. Dadurch liegen die unbeschalteten 2. Adern als
Kapazität mit drauf. Das kann die Signale verwürgen und solche Effekte
auslösen.

MfG Paul

von Jan B. (Firma: RP-Plating) (kirchner)


Lesenswert?

Danke, das werde ich testen.

Aber - warum immer genau die ersten 8 Zeichen? Bei unterschiedlichen 
Displays? Ich habe auch Ports getauscht. Alle Zeichen nach dem (. sind 
klar und deutlich.

von spess53 (Gast)


Lesenswert?

Hi

>1. ein zweites größeres Display auch 4*20 Zeichen - gleicher Fehler

Wenn das auf zwei unterschiedlichen Displays auftritt, deutet das auf 
Softwarefehler hin. In der unteren Zeile sieht man deutlich, das zwei 
4en mit 2en überschrieben werden. Bei den Zeilen 1 und 2 sind es 
vermutlich Leerzeichen.

MfG Spess

von Jan B. (Firma: RP-Plating) (kirchner)


Lesenswert?

Leider wird es nicht mit leerzeichen überschrieben.

ich lese in der Software ein tastenfeld aus und schreibe den aktuellen 
wert in das Display
1
Do
2
Key = Getkbd()
3
Lcd Key
4
Lcd Cnt
5
Waitms 100
6
Loop

Die unterschiedlichen Ziffer kommen von den unterschiedlichen Werten die 
in variable Key geschrieben werden. (wenn ich keine taste drücke wird 
alles mit 16 überschreieben - was dem wert entspricht wenn keine taste 
gedrückt ist)

Die 16 wird auch in den dunklen bereich geschrieben - leider nur ganz 
schwach.

von amateur (Gast)


Lesenswert?

Ist es möglich, dass Du in irgendeiner versteckten Schleife, dauernd das 
Display beschreibst/füllst. Dabei kann es zu bestenfalls lustigen aber 
auf keinen Fall zu vorhersagbaren Interferenzen kommen.

von Karl H. (kbuchegg)


Lesenswert?

spess53 schrieb:
> Hi
>
>>1. ein zweites größeres Display auch 4*20 Zeichen - gleicher Fehler
>
> Wenn das auf zwei unterschiedlichen Displays auftritt, deutet das auf
> Softwarefehler hin. In der unteren Zeile sieht man deutlich, das zwei
> 4en mit 2en überschrieben werden. Bei den Zeilen 1 und 2 sind es
> vermutlich Leerzeichen.

Ich denke auch, dass das ein Effekt ist, der durch ständiges Beschreiben 
des LCD entsteht.

@Jan

Mach halt mal den Einfachtest.
1 Text hinmalen. Und zwar ein einziges mal und nur ein einziges mal.

Wenn man etwas abklären will, dann kann ein Testprogramm nicht einfach 
genug sein. Das sich auf einem LCD die tollsten Effekte zeigen, wenn man 
es mit eine paar hundert Hz 'Datenfrequenz' zuballert, ist nun wirklich 
nichts neues.

von Weingut P. (weinbauer)


Lesenswert?

Dein LCD  wird permanent überschrieben

Do
Key = Getkbd()
Lcd Key
Lcd Cnt
Waitms 100
Loop

ob Taste gedrückt oder nicht, alle 100ms oder eben mit 10Hz, dann gibt 
das solche Effekte, LCDs sind nicht besonders schnell

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.