Forum: Mikrocontroller und Digitale Elektronik Problem mit Display


von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

Ich versuche seit Stunden dieses Projekt nachzubauen: 
http://linuxfocus.org/English/June2005/article379.shtml

leider bekomme ich diesen Displayfehler, dass ich die Einheiten V & A 
und die beiden ersten Klammern nicht lesen kann.

Weiß jemand Abhilfe?
Oder Ideen?

Die Leitungen habe ich zich mal gemessen - alles OK scheint mir, als ob 
das Display defekt wäre. Ich konnte es noch nicht anderswo testen. Ist 
aber neu Reichelt 23€!!!

Mfg

von Lukas K. (carrotindustries)


Lesenswert?

Ist der Kontrast richtig eingestellt?

von spess53 (Gast)


Lesenswert?

Hi

Wie oft schreibst du den auf das Display?

MfG Spess

von Timmo H. (masterfx)


Lesenswert?

Sieht wirklich so aus, als wenn das Display zu oft aktualisiert wird.

von Robert S. (razer) Benutzerseite


Lesenswert?

Bildformate!!!!

von Dr.E (Gast)


Lesenswert?

hallo,

ohne irgendwie jemand zu nahe zu treten aber diese normalen text 
displays anzusteuern  ist ja relativ trivial aber fast jeden tag gibts 
irgend ein problem damit,

aber das oben genannte problem sieht so aus als ob es zu oft 
aktualisiert
wird

einfach mal das forum durchsuchen.

wiegesagt ich wolllt damit niemanden zu nahe treten


mfg

von Chris (Gast)


Lesenswert?

Sieht nach einem Problem mit der Kontrastspannung aus. Was ist das denn 
genau für ein Display und welche Kontrastspannung hast Du angelegt?

von Karl H. (kbuchegg)


Lesenswert?

Die Software müsste man überarbeiten.
Die ist nach dem Muster geschrieben

  Endlosschleife
     LCD löschen
     hinmalen
     delay


das das flimmert und man auf den meisten LCD nichts mehr lesen kann, ist 
nicht deine Schuld. Das steckt in der Software drinnen. 
Unglücklicherweise ist auch der delay so geschrieben, dass ihn der 
Compiler rauswerfen wird.

Auch sonst sind da ein paar unschöne Dinge im Programm versteckt.

Aber du kannst mal folgendes probieren

in ddcp.c, ganz am Anfang

Die Funktion delay_ms
ersetzt du durch
1
void delay_ms(unsigned char ms)
2
/* delay for a minimum of <ms> */
3
/* with a 4Mhz clock */
4
{
5
  uint8_t i;
6
7
  for( i = 0; i < ms; ++i )
8
    _delay_ms( 1 );
9
}

und ganz am Anfang ergänzt du noch
1
.....
2
#include <string.h> 
3
#include <avr/eeprom.h> 
4
5
#ifndef F_CPU
6
#define F_CPU 4000000
7
#endif
8
#include <util/delay.h>

das könnte eine gewisse Abhilfe bringen

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die Antworten.

Das Problem besteht noch immer. Den Kontrast regel ich über ein 10K Poti 
von GND zu Plus.

Das LCD 202A BL von Reichelt. Ich werde späte eine andere Schaltung mit 
dem Display aufbauen.

Was meinst du mit Bildformate? Die Zeilen und der Beginn passen doch.

Nach ein wenig Probieren sieht es aus, als sei das Display nur am Anfang 
so, eventuell einer von zwei Controllern defekt?

Mfg

von Karl H. (kbuchegg)


Lesenswert?

Stefan schrieb:

> Nach ein wenig Probieren sieht es aus, als sei das Display nur am Anfang
> so, eventuell einer von zwei Controllern defekt?

Nicht notwendigerweise.
Probier mal ein einfaches Testprogramm, welches etwas auf das LCD 
schreibt und dann nichts weiter tut, damit da mal ein statisches Bild 
entsteht. Solange das Programm da immer wieder rumfuhrwerkt weiß man 
nie, ob sich der Effekt nicht durch ungeschickte Programmierung ergibt. 
Einmal Text aufs LCD und dann Ruhe: jetzt ist das LCD alleine und zeigt 
nur noch an.

von Karl H. (kbuchegg)


Lesenswert?

Seh ich das richtig, dass die Texte ihre Position nach links verschoben 
haben? Statt den ursprünglich eckigen Klammern hast du jetzt runde 
Klammern.

Warst du das, sprich hast du das Programm geändert?

(Dein µC läuft auf 4Mhz? Hast du das kontrolliert?)

von spess53 (Gast)


Lesenswert?

Hi

>Nach ein wenig Probieren sieht es aus, als sei das Display nur am Anfang
>so, eventuell einer von zwei Controllern defekt?

Das Teil hat nur einen Controller. Das andere ist ein Spaltentreiber.
Wie sieht es aus, wenn du die Zeilen nur 1x beschreibst? Also Text 
schreiben und dann das Display in Ruhe lassen.

MfG Spess

von Stefan (Gast)


Lesenswert?

Ich bin gerade dabei für ein einfaches Test programm umzulöten.

Ja, ich habe im Code ein paar Leerzeichen eingefügt, so wie es Aussieht, 
ist alles ab ca. der 7. Stelle in Ordnung?

Mit dem Takt hab ich alles durchprobiert. Bringt leider nichts.

Ach, ich habe noch was vergessen zu erwähnen, es hat mit einem anderem 
IC und LCD schon funktioniert, bis ich das bedrahtete Kontrast Poti an 
den Kühlkörper kam, GND auf Plus. Dises andere LCD macht seitdem kaum 
noch etwas nur fehlerhafte Zeichen.


Momentan ist auch nur das Display angeschlossen, keine Transistoren, 
oder Taster.

Mfg

von Karl H. (kbuchegg)


Lesenswert?

Stefan schrieb:
> Ich bin gerade dabei für ein einfaches Test programm umzulöten.

?
Wozu musst du da umlöten

>
> Ja, ich habe im Code ein paar Leerzeichen eingefügt,

OK.
Meiner Meinung nach machst du bei der Fehlersuche einen gravierenden 
Fehler: Du veränderst zuviele Dinge auf einmal. Dann weiß man nie, 
welcher Effekt jetzt durch welche Veränderung entstanden ist.
Immer nur 1 Teil auf einmal ändern und sich dann die Auswirkungen 
ansehen.

> Mit dem Takt hab ich alles durchprobiert. Bringt leider nichts.

Und mit welcher Taktfrequenz fährst du jetzt?
Dir ist klar, dass die Taktfrequenz im Programm eingetragen werden muss 
und unter Umständen auch Auswirkungen auf dein Programm hat. So kann man 
zb nicht einfach jeden beliebigen Teiler beim ADC einstellen, sondern 
muss mit dem vorhandenen Takt einen Teiler auswählen, so dass der ADC 
Takt in einem vorgegebenen Bereich liegt. Wenn du daher die Taktfrequenz 
umstellst, muss man auch hier anpassen.

> Ach, ich habe noch was vergessen zu erwähnen, es hat mit einem anderem
> IC und LCD schon funktioniert, bis ich das bedrahtete Kontrast Poti an
> den Kühlkörper kam, GND auf Plus. Dises andere LCD macht seitdem kaum
> noch etwas nur fehlerhafte Zeichen.

Oh, Mann. Welches 'Plus'? Die 30V oder die 5V?


Hmm. Du sprichst immer von IC, wenn du vom µC sprichst. Das schafft in 
mir nicht unbedingt vertrauen, dass du weißt was du da tust. Klare 
Frage: Hast du am Mega8 die Fuses umgestellt um die 4Mhz internene Takt 
zu aktivieren? Wenn du mit der Frage nichts anfangen kannst, dann hast 
du den Mega8 nicht umgestellt und der läuft immer noch mit 1Mhz

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Umlöten, weil alle Pins halt anders belegt wurden.

Den Takt hab ich einfach ohne Progrmmänderung verstellt, umzusehen, ob 
das Programm zu schnell ist.

von Karl H. (kbuchegg)


Lesenswert?

Stefan schrieb:
> Umlöten, weil alle Pins halt anders belegt wurden.

OK. Ich bin raus.

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.