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
Martin Fischer schrieb: > Ich htte mir für meine atMEGA's die LCD-Lib die hier auf µC.net zu > finden ist. Vielleicht hast du das 'a' vergessen. Kontrolliere noch mal deinen Code.
ICh finde den Fehler leider nicht, kannst du mir auf die Sprünge helfen?
Ich bin alles nochmals durchgegangen, ich beschäftige mich noch net solange mit xMegas's, ich finde einfach nichts.
Demian M. schrieb: > Ich bin alles nochmals durchgegangen, ich beschäftige mich noch net > solange mit xMegas's, ich finde einfach nichts. Das war vom PC meines Kollegen, das habe ich geschrieben ^^
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.
Martin Fischer schrieb: > Kenne mich mit xMEGA net so aus Dann solltest du ein Blick ins Datenblatt oder zumindest ein Tutorial werfen, sonst wirst du die selben Fehler immer wieder machen. http://www.stromflo.de/dokuwiki/doku.php?id=xmega-c-tutorial hat die Lösung für dein Problem. Das _bm ist dein Stichwort.
Hi >Dann solltest du ein Blick ins Datenblatt oder zumindest ein Tutorial >werfen, ... Datenblatt nutzt nicht viel. Da stehen nur typenbezogene Sachen drin. Aber zu jeder ATXMega-Familie gibt es ein Manual das ausführlich auf die Hardware eingeht. Z.B. für ATxmegaxyzAn http://www.atmel.com/Images/doc8077.pdf MfG Spess
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.
Hi >Dann solltest du ein Blick ins Datenblatt oder zumindest ein Tutorial >werfen, ... Datenblatt nutzt nicht viel. Da stehen nur typenbezogene Sachen drin. Aber zu jeder ATXMega-Familie (A/AU/B/C/D/E) gibt es ein Manual das ausführlich auf die Hardware eingeht. Z.B. für ATxmegaxyzAn http://www.atmel.com/Images/doc8077.pdf MfG Spess
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.
ICh habe jetzt die Lib so wie du gesagt hast editiert, klappt trotzdem noch net, hier nochmal der aktuelle code.
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.
Das Display ist korrekt. Hitachi HD78..... ich hatte es bisher immer mit 5V betrieben, dachte 3 machen es auch...
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.
Kann ich einfach eine externe 5V Quelle da dranhängen? Wenn ja, wie genau?
Hallo, keine 5 Volt in Verbindung mit einem ATXMEGA!! Kannst du mal die genaue Pin-Belegung Atxmega -> Display aufzeigen (Datenbus, Steuerung). Gruß G.G.
:
Bearbeitet durch User
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
HI >Also: >+#######-+########- ---> LCD_PIN3 >??? So wie im Anhang. MfG Spess
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
Hi
>Hä? Was genau meinst du?
Was genau verstehst du nicht? Hast du schon mal in das Datenblatt deines
Displays gesehen?
MfG Spess
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
Kommen keine 4,5V raus..ist doch aber klar bei 2x1,5V?? EDIT: Am PIN3 kommen jetzt -2,7V an, und es wird etwas angezeigt
:
Bearbeitet durch User
Na jettz wird text auf dem Display angezeigt, aber es kommen bei Kontrast-PIN -2,7V an, egal. Wie kann ich das ohne Batterien lösen?
Hi >aber es kommen bei Kontrast-PIN -2,7V an, egal. Zum Einstellen der Spannung ist das Poti da. >Wie kann ich das ohne Batterien lösen? Z.B. mit einem 7660: http://www.intersil.com/content/dam/Intersil/documents/icl7/icl7660.pdf MfG Spess
Hi Hier Beitrag "Re: ICL 7660 Spannungsinverterschaltung" sind noch ein paar andere Schaltungen. MfG Spess
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.