xMEGA LCD-Lib funktioniert nicht

OP #3638221
Lesenswert?

Hallo!

Ich htte mir für meine atMEGA's die LCD-Lib die hier auf µC.net zu 
finden ist.
Diese habe ich nun optimiert für xMEGA's.

Anscheinend habe ich jedoch etwas fehlerhaft verarbeitet, denn das 
Display bleibt leer.

Im Anhang ist meine Lib, vielleicht findet ihr einen Fehler.

Danke, Martin
Angehängte Dateien:
#3638431
Lesenswert?

Hallo,


So funktioniert es bei mir!

#define LCD_PORT      PORTE
#define LCD_DB        0
#define LCD_RS        4
#define LCD_EN        5


AVRSTUDIO 6 meldet hier:


#define LCD_PORT      PORTE
#define LCD_DB        PIN0_bm
#define LCD_RS        PIN4_bm
#define LCD_EN        PIN5_bm

Warning   left shift count >= width of type [enabled by default]

Gruß G.G.
#3638476
Lesenswert?

Martin Fischer schrieb:
> damit spreche ich einzelne bits an?

Klick den Link an, dann hättest du die Lösung...

Da steht doch klar und deutlich:

2.1 _bm (Bitmaske)

Mit _bm können einzelne Bits des jeweiligen Registers gesetzt oder 
gelöscht werden. Das folgende Beispiel setzt das CLKSEL1 Bit für den 
Timer um einen Vorteiler von 2 einzustellen.

Link öffnen, Ctrl + F, nach _bm suchen... ne sache von 10 Sek undd ie 
Frage hättest du dir damit gesparrt.
Gast #3638486
Lesenswert?

Martin Fischer schrieb:
> damit spreche ich einzelne bits an?

Du willst bei deinem momentanten vorgehen einzelne Bits ansrpechen und 
zurechtrücken, aber arbeitest mit Bitmasken.

spess53 schrieb:
> Datenblatt nutzt nicht viel. Da stehen nur typenbezogene Sachen drin.

Dann in die Appnot AVR1000 -
Getting Started Writing C Code for Atmel XMEGA oder wie man das nennt. 
Diese ganzen Dokumente laufen für mich unter dem Begriff Datasheet.
#3639114
Lesenswert?

Hallo,

was für ein Display verwendest du genau?
Bist du dir sicher, dass dein Display mit 3,3 Volt funktioniert?
Ich habe deinen Code am PORTE mit einen Logikanalysator getestet.
Die gesendeten Daten sind ordentlich angekommen. Code und Funktionalität 
deines Displays konnte ich natürlich nicht überprüfen.


Gruß G.G.
Gast #3639156
Lesenswert?

Die meisten HD44780 laufen nur mit 5V, aber je nach Hersteller auch 
schon ab 3V. Auch wenn die Logik vom Display mit 3V läuft kann es sein, 
dass deine Kontrastspannung mit 3V zu niedrig ist. Da nochmal extra 
drauf achten.

Ansonsten kann es noch an der Verkabelung liegen.
Gast #3639202
Lesenswert?

Hi

Das Display bleibt an den 3,3V. Aber du brauchst eine negative 
Hilfsspannung. Am einfachsten zwei 1,5V Batterien in Reihe schalten und 
mit dem positiven Pol an Masse anschließen. Das Kontrastpoti dann statt 
an Masse am negativen Pol der Batterien anschließen.

MfG Spess
Gast #3639908
Lesenswert?

Hi

>Ich nutze kein Poti^^

Warum nicht? Bei den wenigsten Displays ist VEE an GND eine optimale 
Lösung. Und in dem Fall brauchst du eins. Die Spannung zwischen VEE und 
VCC muss auf 4,5...5V eingestellt werden. Oder sagt das Datenblatt 
deines Displays zu

Supply Voltage For LCD

oder so ähnlich etwas anderes?

MfG Spess
Gast #3640142
Lesenswert?

Hi

>-> Also kann ich direkt 0 anschließen?

Nein. Die LCD-Spannung wird zwischen VEE und VCC gemessen. Dann 
entsprechen die 0... 0,5V zwischen GND und VEE 4,5...5V zwischen VEE und 
VCC. Und die 4,5...5V musst du jetzt mit dem Poti erzeugen. 3,3V(VCC)- 
4,5...5V macht -1,2...-1,7 an VEE (gegen Masse). Also kannst du VEE 
nicht an Masse anschließen.

MfG Spess

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren