ATmega-LCD-schwache Zeichen

OP (Firma: RP-Plating) #2814866
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
Angehängte Dateien:
Gast #2814890
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
Gast #2814918
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
OP (Firma: RP-Plating) #2814930
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.
Gast #2814959
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.
#2814970
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.

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