www.mikrocontroller.net

Forum: Compiler & IDEs GraphicLCD DG-16080 mit ATMega32 benutzen


Autor: Paule (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Abend,

ich sitze jetzt schon seit einiger Zeit an einem LCD von Pollin 
(DG-16080).
Ich habe den Code hier aus dem Forum und versucht ihn so gut ich konnte 
anzupassen.
Leider bekomme ich nichts auf dem Teil angezeigt :-(
Vielleicht kann mir ja jemand von euch sagen, wo mein Fehler liegt.
An dem PORTA PA0 lasse ich nur eine LED blinken um zu gucken, ob das 
Programm läuft.
Achso bevor jemand fragt...den Kontrast regel ich über ein Poti zwischen 
Masse und PIN17 vom LCD.

Vielen Dank schonmal

Paule

Autor: Paule (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mir ist grad eingefallen ich benutze einen ATMega8535.
Der ist aber pinkompatibel zum ATMega32.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
  LCD_PORT=0;
  do
  {  _delay_us(0.1);
    RS_PORT |= (1<<EN);
    _delay_us(1);
    temp=LCD_PIN;
    RS_PORT &= ~(1<<EN);
  }
  while (temp&128);
  LCD_PORT=255;

  RS_PORT |= (1<<CS);
  _delay_us(40);

Du solltest vielleicht lieber die Datenrichtung zum Lesen des Busy 
umschalten statt des Ports...

LCD_DDR=0;
...
LCD_DDR=255;

wäre da sinnvoll.

PS: habe über den Rest jetzt nicht drübergeschaut.

Gruß aus Berlin
Michael

Autor: Paule (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für deine Antwort.
Hab deine Änderung eingebracht. Aber leider lag es daran nicht.

Autor: Gast1234 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dein Code läuft bei mir tadellos, an dem kann es nicht liegen.

Wenn du den Kontrast voll aufdrehst, wird das Display schwarz?
Wenn ja, dann habe ich folgende drei Vermutungen:

Vermutung 1
Falls du doch einen ATMega32 verwendest - der ist zwar Pinkompatibel, 
aber du musst noch evtl. den JTAG (über Fuse: JTAGEN) deaktivieren. Der 
blockiert sonst nämlich deinen PortC und du kannst ihn nicht als IO 
verwenden (Data 0-7 des Displays).

Vermutung 2
Achte darauf, dass du die Projekte für die Zielplattform neu anlegst und 
dann die Quellfiles erst rein kopierst. Das alleinige umstellen des 
Zielcontrollers bei configuration options führt nicht selten zu 
Problemen.

Vermutung 3
Ansonsten tippe ich auf einen Verdrahtungsfehler (manchmal findet man 
den erst nach dem vierten mal kontrollieren).

Good Luck!

Autor: Paule (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten.
Also bei mir wird es nicht schwarz.
Kannst du mir mal sagen wie du das Teil angeschlossen hast?
Hast du was mit dem Pin18 vom LCD gemacht?
Wie regelst du bei dir den Kontrast? Ich hab ein 10k-Poti zwischen Masse 
und Pin17 und den Schleifer an Pin3.
Vielleicht ist ja auch mein LCD kaputt. War ja son Billigteil ;-)

Autor: Gast1234 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das Teil genau so wie auf dem Bild im Anhang angeschlossen. Das 
Bild habe ich irgendwann mal hier im Forum gefunden.

In deiner Software habe ich nur einige defines für die Pins an meine 
Hardware angepasst. War alles fast identisch, nur die Steuerleitungen 
RS, RW und EN waren von der Reihenfolge anders.

Versuche zuerst dein Display über das Kontrastpoti "schwarz zu kriegen". 
Dann drehe es soweit zurück, dass du die Pixel gerade noch etwas dunkler 
als stromlos siehst. Das ist dann schonmal ein gutes Zeichen und du 
kannst anschließend weiter mit der Ansteuerung herumprobieren.

Autor: Paule (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab es mal so angeschlossen. Hatte es ja schon fast so.
Mit meinem 10k-Poti bekomme ich das Display nicht schwarz.
Werde es morgen mal mit nem 100k-Poti versuchen und wenn es dann auch 
nicht geht, dann könnte man ja sagen, dass das Teil kaputt ist, oder?

Autor: Gast1234 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mit meinem 10k-Poti bekomme ich das Display nicht schwarz.

10K erscheinen reichlich wenig, da schließt du ja mit dem Poti die 5V 
mit den -10V "fast" kurz. Ich hab bei mir folgendes gemessen:


Pin 2 (5V)    o-------+
                      |
                      |
                      |
                     -+-
                     | |    88K
                     | |
              100K   | |
                     | |
                     | |<--------o Pin3
                     | |    12K
                     -+-
                      |
                      |
                      |
Pin 17 (-10V) o-------+

Autor: Paule (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe es jetzt auch mal mit dem 100k-Poti versucht, aber da kam auch 
nichts.
Ich denke mal, dass ich das Teil irgendwie irgendwo mal zerschossen 
habe.
Werd aber bald mal wieder bei Pollin bestellen und ich denke mal, dass 
ich die 7 Euro dann auch noch über habe.
Vielen Dank für die Hilfen

Autor: Günter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gast1234,
habe jetzt von Pollin das Display erhalten. Ich wollte die bisher 
veröffentlichten Codeschnipsel auf den ATMega8 anpassen. Da habe ich 
hier gesehen, dass Du schon ein fertiges System hast. Würdest Du Deinen 
Code auch weitergeben?

Gruß
Günter

Autor: Paule (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
funktionierender Code mit Pinguin!
Habe ein neues LCD gekauft und das funktioniert super.

Vielen Dank nochmal für die Hilfen.

Autor: Rudolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten nabend

Ich versuche grade ein dg 16080 glcd, mit dem obrigen code zum laufen zu 
bringen.
Der Grafikmodus läuft aber die Zeichenausgabe geht nicht.
Im Grafikmodus kommen mit:

 lcd_writechar(1);
 //lcd_writechar('a');

nur verwirrte pixel(aber grob an der richtigen Stelle).
Im Zeichenmodus kommen falsche Zeichen am falschen Platz
Bsp:

>
<


c

wenn ich jetzt direkt in den ram schreibe mit:

for(int i=0;i<=3000;i++)
{
  lcd_writecom(0b00001100);
  lcd_writedat(0x11111111);
}

erscheind zwar das richtige Zeichen aber erst nach dem man etwa 3000 mal 
den Befehl dazu gegeben hat!

Ich hoffe ihr könn mir helfen?!

mfg rudolf

Autor: Rudolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kleiner Schreibfehler:

for(int i=0;i<=3000;i++)
{
  lcd_writecom(0b00001100);
  lcd_writedat(0b11111111);   //x->b
}

Autor: Werner B. (werner-b)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Rudolf,

> lcd_writechar(1);

Was glaubst du denn was da rauskommen soll?
Siehe dir mal eine ASCII Tabelle an:
http://de.wikipedia.org/wiki/American_Standard_Cod...

Autor: Rudolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das war leider nur ein unglückliches Beispiel!

mit

lcd_writechar('A');
lcd_writechar(0b11111111);
...

besteht das gleiche Problem

Autor: Kermit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jungs,

ich versuch zum ersten mal ein Graphik LCD anzusteuern und hab ein 
Anfängerproblem... Welche Datei muss im Programmers Notepad geöffnet 
sein um zu compilieren? Es muss ja denke ich mal eine Datei sein die in 
dem gleichen Ordner ist wie das makefile.

Ich öffne also die main.o und gehe auf "make all" und es erscheint:


> "make.exe" all

AVR Memory Usage
----------------
Device: atmega32

Program:   16940 bytes (51.7% Full)
(.text + .data + .bootloader)

Data:          2 bytes (0.1% Full)
(.data + .bss + .noinit)



> Process Exit Code: 0
> Time Taken: 00:00






Danach auf "program" und die Antwort lautet:



> "make.exe" program
make.exe: *** No rule to make target `program'.  Stop.

> Process Exit Code: 2
> Time Taken: 00:00




Kann mir jemand helfen? Danke.

Autor: Arno Nym (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

hab das Display gerade angesteuert bekommen. Pinguin funktioniert auch.


Allerdings: Einige Pixel sind nur sehr schwach zu erkennen.

Habe den hier schon vorgeschlagenen Aufbau, sprich 100 k Poti zwischen 
Pin 2 und 17 und die Mittelstellung an Pin 2. Das Poti ist voll 
aufgedreht, also bei den -10V.


Hat jemand ne Idee?

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.