www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Seltsamer Fehler bei Grafik Display


Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,


habe seit einer Weilee ein 128*64 Grafik Display im einsatz.Ansteuern 
tue ich ihn mit einem Atmega16@4 mhz

Zum Problem:

Es hate ewige wunderbar funktionieer der Text wurde über das gesamte 
Display ausgegeben, seit gestern funktioniert das nicht mehr er gibt den 
Text nur noch auf der linken Seite und alles untereinander aus. Soweit 
ich weiss ist so ein GLCD auf 2 eChips unterteilt (rechter und linker)
nun dachte ich meir das vllt ein Draht(Chip Select 1 bzw2) abgegangen 
ist, aber dem ist nicht so.

Habt ihr eine Idee


Code
#include <inttypes.h>

#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <stdlib.h>
#include <stdio.h>
#include "ks0108.h"
#include "font12x16.h"
#include "font6x8.h"



const char pgmString[] PROGMEM = "http://www.apeTech.de\n\naffe.t@gmx.de";

int main(void) {
  volatile uint16_t i;
  struct font largeFont, smallFont;
  
  for(i=0; i<15000; i++);
  
  
  largeFont.width = FONT12X16_WIDTH;
  largeFont.height = FONT12X16_HEIGHT;
  largeFont.charData = Font12x16;
  
  smallFont.width = FONT6X8_WIDTH;
  smallFont.height = FONT6X8_HEIGHT;
  smallFont.charData = Font6x8;
  
  ks0108Init();
  ks0108GotoXY(0,4);
  ks0108PutString("Hallo Welt!", largeFont);
  ks0108GotoXY(0,28);
  ks0108PutStringP(pgmString, smallFont);

  while(1);
}

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Soweit ich weiss ist so ein GLCD auf 2 eChips unterteilt (rechter und linker)
>nun dachte ich meir das vllt ein Draht(Chip Select 1 bzw2) abgegangen
>ist, aber dem ist nicht so.

Wahrscheinlich hast du in deiner Software den Chip Select 2
irgendwie noch wo anders benutzt ;) Oder der ist doch nicht
so richtig angeschlossen.

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe das aber mit einem Durchgangsprüfer getestet.

Und in der Software woanders benutzt...hmm hab ja den Code gepostet
....e

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>seit gestern funktioniert das nicht mehr er gibt den
>Text nur noch auf der linken Seite und alles untereinander aus.

Was hast du denn seit gestern geändert ?
Nimm doch mal die Version von vorgestern
und probier damit den korrekten Anschluss des LCD aus.

Autor: Gerry L. (gerrylenz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du nichts an der Software geändert hast und einen Hardware Defekt 
ausschliessen kannst vermute ich mal das Dein Display einen Reset nötig 
hat.

Ab und zu sind bei mir die Zeilen (links höher als rechts) auch 
unterschiedlich dann wird halt ein Display Reset gemacht und gut ist. 
Bei einige Exemplaren reicht es wenn für 5 min die Spannung unterbrochen 
wird.

Allerdings erscheint mir komisch das der komplette Text, der vorher auf 
die gesamte Länge gezeigt wurde, nur noch auf einer Seite angezeigt 
wird. Hört sich eher nach einem Softwarefehler an.

Gruß

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmm also habe jetzt die versorgung abgeklemmt, habe tatsächlich 1 zu 1 
die software hier ausm Forum genommen. und das Display zeigt auch auf 
der rechten seite nichts an wenn ich ihm mit gotoxy anweisung sage. dae 
er da etwas ausgeben soll.

MFG

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm ne ein Reset hat auch nichts gebracht Fehler bleibt.

Autor: Marco M. (marco1987)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und manchmal zeigt das lcd auch so ein blödsinn an..

deutet das auf hardware defekt?

Autor: Gerry L. (gerrylenz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das ist genau das was ich meine die Zeilen sind verschoben.
Wie und wo machst Du den Reset ?

Autor: Gerry L. (gerrylenz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja wozu soll die Schleife gut sein?

>for(i=0; i<15000; i++);

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gerry L. wrote:
> Ach ja wozu soll die Schleife gut sein?
>
>>for(i=0; i<15000; i++);

Das hab ich hier aus dem Forum 1 zu1 übernommen:-)

aber hast recht die bringt nicht sehr viel^^

Also den Reset:


Ich habe 5 V + 10 K an den Reset Pin des LCD oder meinst du den Software 
Reset, dazu könnte ich meine Routine auch posten.

Aber wie gesagt das komische ist ja das es genau mit der SOftware ewig 
funktioniert hat.

MFG

Autor: B. Jue (bjue)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das sieht nach "fliegendem" Aufbau aus. Ich hatte mal ähnliche Probleme 
mit solch einem Aufbau, also relativ langen Leitungen zum Display hin. 
Als ich mit einem Oszi die Chip Select Leitungen kontrolliert habe, war 
plötzlich alles in Ordnung. Daraufhin habe ich jeweils zwischen den 
Chipselect Leitungen und Masse einen Pulldown Widerstand (ca. 10kOhm) 
und parallel dazu einen kleinen Kondensator (ich glaube so um die 50pF) 
direkt am Display angelötet und schon ging es.
Ausserdem ist es natürlich wichtig, die Logik der Chip Select Leitungen 
richtig anzusteuern. Es gibt da High-aktive und Low-aktive Displaytypen! 
Ich habe da mal zeitraubende Erfahrungen machen müssen, als ich ein 
kleines Display gegen ein gösseres ausgetauscht habe: Trotz richtiger 
Anschlussbelegung wollte es nicht, weil ich die umgekehrte Logik der 
Chip Select Leitungen nicht gleich entdeckt hatte.

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
B. Jue wrote:
>Daraufhin habe ich jeweils zwischen den
> Chipselect Leitungen und Masse einen Pulldown Widerstand (ca. 10kOhm)
> und parallel dazu einen kleinen Kondensator (ich glaube so um die 50pF)
> direkt am Display angelötet und schon ging es.

Ok dies habe ich jetzt umgesetzt die störungen sind nicht mehr da!

aber er zeigt immernoch nicht die rechte seite des lcds an. an falscher 
ansteuerung der logik kann es eigentlich auch nicht liegen, ich habe ja 
nichts verändert und es ging ja vorher.

Habt ihr noch einen Rat?

MFG

Autor: Marco M. (marco1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niemand :-)   ?

Autor: Gerry L. (gerrylenz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal zum Reset am Display.

Der Reset Pin ist dauerhaft an VCC?
Für einen Reset muss dieser kurz gegen GND vorher nat. VCC trennen.
Kann man schön mit einem Pin vom MC machen.

Zu Fehlereingrenzung solltest Du schrittweise vorgehen.

1. Alle Leitungen doppelt und dreifach prüfen
2. Die Software auf die wirklich nötigsten Funktionen abspecken.
3. Vorm Kompilieren alle vom GCC/AVR Studio erstellten Files löschen
4. usw. usw.
5. Display tauschen.

Wenn wie Du sagts der Fehler von heut auf morgen aufgetreten ist kann es 
durchaus auch ein Hardware defekt sein.

Da die Hilfestellungen die bisher nicht geholfen haben ist das der 
einzige Weg den DU gehen kannst.Erst wenn der Fehler genauer eingegrenzt 
ist kann die hier weitergeholfen werden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.