PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DOGM 162 LCD Lib funktioniert nicht



ljminti
28.10.2007, 00:43
Hallo

ich habe mir mal testweise die Schaltung vom LCD am Asuro nachgebaut.
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/LCDErweiterung

da ich selber aber keinen Asuro habe und die komplette Lib nicht brauche wollte ich die Lib von raid_ox einsetzen
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=27717&highlight=

leider bekomme ich mein DOG-M162 über i2C nicht zum laufen.

Gibt es eine Möglichkeit nur die LCD Funktionen zu testen?
im Beispielcode ist etwas von einer essential.c zu lesen, jedoch kann ich die nicht finden.

Also wenn jemand eine schrittweise Anleitung hat würde ich mich freuen.

Gruß

ljminti
28.10.2007, 10:49
Mir würde es auch reichen wenn ich erst mal das lcd im 4bit 5V betrieb zum laufen bekomme.
Die erweiterung auf i2c wäre ja dann optional.

Kann da jemand helfen?

m.a.r.v.i.n
30.10.2007, 10:14
Hallo,

das DOGM162 unterscheidet sich von anderen HD44780 oder kompatiblen Displays nur in der Initialisierungs Sequenz.
Das steht in der lcd.h (http://asuro.svn.sourceforge.net/viewvc/asuro/trunk/lib/inc/lcd.h?revision=89&view=markup) Header Datei.

So sieht die Initialisierungssequenz für das DOGM162 aus (Diese Werte werden nacheinander zum Display gesendet ohne die letzte 0):


#define LCD_INIT {0x29, 0x1C, 0x52, 0x69, 0x74, 0} // DOGM162 Init, See Datasheet


Frage mich aber nicht wie ich auf diese Werte gekommen bin. Ist schon zu lange her.

Die Initialisierung eines HD44700 kompatiblen 1 zeiliges Displays sieht so aus:


#define LCD_INIT {0x20, 0} // (LCD_4BIT | LCD_1LINE | LCD_5X7)


Ich weiß leider nicht, welchen Controller du verwendest. Die LCD Lib ist für den Asuro (Mega8) geschrieben worden. Ob sich der Code so ohne weiteres portieren läßt, kann ich dir nicht sagen.
Du benötigst für eine eigene Anpassung folgende Files aus der Asuro Lib (http://sourceforge.net/project/showfiles.php?group_id=155217):

i2c.h, i2c.c, lcd.h, lcd.c

Eine Beispielanwendung befindet sich im Examples Ordner unter I2CLCD.

ljminti
31.10.2007, 20:55
@m.a.r.v.i.n:
Vielen Dank für die Antwort.
Leider habe ich die Problematik, dass beim Kompilieren folgende Funktionen nicht definiert sind.

Init();
MSLEEP();

Ich verwende den Mega32 wobei es zum Mega8 keine wesentlichen unterschiede gibt.
Im Beispielcode wird weiterhin die asuro.h eingebunden.

Da ich selber ja wie schon erwähnt den Asuro gar nicht baue oder habe würde ich gerne nur notwendige daten dieser Headerdatei entnehmen.

Kannst Du mir hierzu bitte informationen geben?
Weiterhin würde mich interessieren ob es auch eine Möglichkeit gibt die Hardware TWI zu nutzen.

Gruß Julien

m.a.r.v.i.n
02.11.2007, 10:15
Hallo,

Init() ist die Hardware Initialisierung des ASUROs. Die wird dir wenig nutzen, ebenso das Einbinden der asuro.h. Das ist alles Asuro spezifisch.
Msleep() ist nicht anderes als eine Delay Funktion. Stattdesen kannst du auch die Standard Delay Funktion _delay_ms() benutzen.
Siehe hierzu: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Warteschleifen_.28delay.h.29

Natürlich kann man auch TWI benutzen. Die entsprechenden Port Pins sind beim Asuro leider belegt. Deswegen die I2C Simulation.

Eine sehr gute TWI Lib gibt es z.B. von P.Fleury (http://www.jump.to/fleury)