mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GLCD Bleibt Blau


Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe gerade mein GLCD (KS0180) an meinen Mega32 angeschlossen. Ich 
verwende die Lib von apetech.de

Angeschlossen habe ich es wie folgt:

Datenleitungen an PortA also DB0 an PA0 etc.

D/I an PB0
R/W an PB1
EN  an PB2
CS1 an PB3
CS2 an PB4


das Display bleibt Blau woran kann das liegen? Poti für Kontrasst ist 
drinne. Wenn ich dran drehe ändert sich nix.

Das habe ich in der Header Datei geändert:
// Ports
#define LCD_CMD_PORT    PORTB    // Command Output Register
#define LCD_CMD_DIR      DDRB    // Data Direction Register for Command Port

#define LCD_DATA_IN      PINA    // Data Input Register
#define LCD_DATA_OUT    PORTA    // Data Output Register
#define LCD_DATA_DIR    DDRA    // Data Direction Register for Data Port

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sieht alles richtig aus.

Port A und B können ja auch mit "alternate functions" belegt sein - ist 
alles deaktiviert?

Oliver

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also der Mega32 ganz neu das LCD Programm ist das erste was drauf ist. 
Ich Check mal durch, ob was an ist.

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm. jtag ist an aber das ist doch an Port C beim Mega32

Autor: John Small (linux_80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
An PortB ist der ISP-Adapter dran, ist der noch gesteckt ?
Der bringt evtl. die Kommunikation mit dem LCD durcheinander !

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für Anschlüsse hat denn dein LCD?

Oliver

Autor: Flo S. (tuxianer)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
geht sowohl mit als auch ohne ISP nicht. Das Datenblatt ist im Anhang.

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok ich Trottel ich habs komplett verkehrt rum dran...pin 1 ist ja 
rechts. Die armen LED's!

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte ja auf den reset getippt - active low, und wird von der 
ape-lib nicht angesteuert.

Oliver

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gut jetzt bekomme ich ne Weise Fläche...aber von dem Text keine Spur.

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wo muss der Resetpin jetzt hin? Am besten an den Resetpin vom AVR 
oder?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Am besten an den Resetpin vom AVR oder?

Kann man machen.

Oliver

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hatte auch so ein ähnliches Problem. Bei mir war die Kontrastregelung 
nicht richtig beschalten. Da tat sich nix wenn ich den Kontrast ändern 
wollte.  Schau mal hier: Beitrag "ks0108-atmega32"
Da ist die Beschaltung drin. Der Reset-Pin muss natürlich auch 
beschalten sein. Je nach Display ActiveHIGH oder Low.

Greets-Markus

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja ich hatte Reset auch schon auf Greound und auf VCC.

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wegen dem Kontrast. Das geht schon wenn ich am Poti drehe geht die 
Weise Fläche Weg.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit welcher Taktfrequenz läuft der Meag32 denn? Der Code von ape sollte 
bis 8MHz funktionieren, bei höheren Taktfequenzen müssen da noch ein 
paar NOP's eingefügt werden. Zum testen zunächst mal ein paar mehr 
einzubauen, schadet nicht.

Oliver

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok ich hab 16 wp müssen die nops rein?

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sind wp's?

Bei 16 MHz müssen welche rein. Such mal alle Stellen mit
asm volatile("nop\n\t"
   "nop\n\t"
   "nop\n\t"
   ::);

und pack da mindestens 15 nops dazu. Später kannst du das immer noch 
optimieren.

Zur Sicherheit kannst du auch noch in den Zeilen:
for(volatile uint8_t i=0; i<8; i++);  // a little delay loop (faster than reading the busy flag)
die Schleife verlängert werden. i<20 sollte reichen.

Oliver

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke! Es geht!!! Nur wenn ich den Reset an den Avr reset lege kommt ab 
und zu nur das halbe display...dauerhaft auf vcc geht!

Autor: Markus _neu (markush)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Florentin S. wrote:
> Danke! Es geht!!! Nur wenn ich den Reset an den Avr reset lege kommt ab
> und zu nur das halbe display...dauerhaft auf vcc geht!

Sag ich doch! Ist ja wie zuhause, da glaubt mir auch keiner was ;-)))

Markus

Autor: Flo S. (tuxianer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja von den Nops habe ich nix gewusst. Das werd ich nochmal 
optimieren...ich muss mir nur mal nen ordentlichen Vorwiederstand holen 
ich hab leider keine 43Ω da...

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.