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


von Paule (Gast)


Angehängte Dateien:

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

von Paule (Gast)


Lesenswert?

mir ist grad eingefallen ich benutze einen ATMega8535.
Der ist aber pinkompatibel zum ATMega32.

von Michael U. (amiga)


Lesenswert?

Hallo,
1
  LCD_PORT=0;
2
  do
3
  {  _delay_us(0.1);
4
    RS_PORT |= (1<<EN);
5
    _delay_us(1);
6
    temp=LCD_PIN;
7
    RS_PORT &= ~(1<<EN);
8
  }
9
  while (temp&128);
10
  LCD_PORT=255;
11
12
  RS_PORT |= (1<<CS);
13
  _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

von Paule (Gast)


Lesenswert?

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

von Gast1234 (Gast)


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!

von Paule (Gast)


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 ;-)

von Gast1234 (Gast)


Angehängte Dateien:

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.

von Paule (Gast)


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?

von Gast1234 (Gast)


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-------+

von Paule (Gast)


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

von Günter (Gast)


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

von Paule (Gast)


Angehängte Dateien:

Lesenswert?

funktionierender Code mit Pinguin!
Habe ein neues LCD gekauft und das funktioniert super.

Vielen Dank nochmal für die Hilfen.

von Rudolf (Gast)


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

von Rudolf (Gast)


Lesenswert?

kleiner Schreibfehler:

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

von Werner B. (werner-b)


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_Code_for_Information_Interchange

von Rudolf (Gast)


Lesenswert?

Das war leider nur ein unglückliches Beispiel!

mit

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

besteht das gleiche Problem

von Kermit (Gast)


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.

von Arno Nym (Gast)


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?

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.