PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : W204B-NLW (LCD) zeigt nichts - Peter Fleury`s Lib



JellbieO
24.10.2009, 14:38
Hallo Leute!

Ich hab mir ein 4x20 Zeichen LCD-Display [W204B-NLW] (http://www.reichelt.de/?;ACTION=3;ARTICLE=53952) von Annika`s Elektronikladen besorgt
und direkt einmal zusammen mit dem RN-LCDADAPTER STD (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=66&products_id=179) in Betrieb genommen.
( Für die Hintergrundbeleuchtung hab ich natürlich noch nen anderen Widerstand von 44Ohm eingebaut. )

Ich benutze als Controllerboard das RN-Mega128 Funk (http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=158) und hab den dort bereits vormarktierten 10pol Wannenstecker für`s LCD verwendet.

Mit einem Testprogramm von Bascom funktioniert alles wunderbar und konnte somit schon den Kontrast perfekt einstellen. Das ganze will ich nun allerdings gerne in C programmieren und habe mir daher die Library von Peter Fleury besorgt. (http://homepage.hispeed.ch/peterfleury/avr-software.html#libs)

Das Datenblatt zum LCD findet man hier (http://www.reichelt.de/?;ACTION=7;INDEX=0;FILENAME=A500%252FLCD204BBL%252 3EAS.pdf)

Dort hab ich dann in der lcd.h folgendes angepasst:


#define XTAL 16000000 // Atmega128 mit 16Mhz

#define LCD_LINES 4 /**< number of visible lines of the display */
#define LCD_DISP_LENGTH 20 /**< visibles characters per line of the display */


#define LCD_PORT PORTF /**< port for the LCD lines */
#define LCD_DATA0_PORT PORTF /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT PORTF /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT PORTF /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT PORTF /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT PORTF /**< port for RS line */
#define LCD_RS_PIN 7 /**< pin for RS line */
#define LCD_RW_PORT PORTF /**< port for RW line */
#define LCD_RW_PIN 6 /**< pin for RW line */
#define LCD_E_PORT PORTF /**< port for Enable line */
#define LCD_E_PIN 5 /**< pin for Enable line */


// Mit den folgende Einstellungen konnte ich irgendwie nichts mit anfangen
// Somit habe ich nichts weitergeändert.Habe lediglich nur das was oben genannt wurde angepasst.


#define LCD_LINE_LENGTH 0x40 /**< internal line length of the display */
#define LCD_START_LINE1 0x00 /**< DDRAM address of first char of line 1 */
#define LCD_START_LINE2 0x40 /**< DDRAM address of first char of line 2 */
#define LCD_START_LINE3 0x14 /**< DDRAM address of first char of line 3 */
#define LCD_START_LINE4 0x54 /**< DDRAM address of first char of line 4 */

// Anmerkung: Die Optimierung für das Porjekt habe ich auch auf O2 gesetzt. Hab gelesen das es sonst zu Problemen mit dern Pausezeiten kommen kann.

Hab ich irgendwas vergessen oder nen gravierenden Fehler gemacht?
Schonmal ein dickes Danek im vorraus für eure Hilfe :)

pyr0skull
24.10.2009, 16:51
Ich vermute mal stark, es handelt sich um ein Display von Electronic Assembly. Der darauf verbaute Controller macht in Verbindung mit der Library von Peter Fleury Probleme.
Vorrausgesetzt deine restlichen Angaben stimmen, musst du in der Initialisierungsroutine alle benutzten Datenausgänge nochmal explizit auf Low setzen. Das ist zwar eigentlich unnötig (Nach einem Reset sind alle Ports Low), aus irgendeinem Grund funktioniert das Display so aber ohne Probleme.

Code kann ich leider nicht beisteuern, da ich den nicht hier auf dem Rechner habe. Ist aber kein großer Akt das grad selbst zu schreiben.

JellbieO
24.10.2009, 17:45
okay vielen Dank schonmal! Ich werds später einmal ausprobieren.
Werde dann berichten obs geklappt hat oder nicht.

Gruß JellbieO

JellbieO
25.10.2009, 14:14
mhmm also ich habs ausprobiert und es hat leider dennoch nicht funktioniert.



Der darauf verbaute Controller macht in Verbindung mit der Library von Peter Fleury Probleme.


Laut Beschreibung ist es allerdings doch genau der, welcher von der Lib gefordert wird. Ist es nicht möglich das der Fehler woanders liegt?

pyr0skull
25.10.2009, 19:08
Es kann natürlich auch sein, dass du bei der Konfiguration einen Fehler eingebaut hast. Wenn das Display mit Bascom funktioniert, hast du ja zumindest schonmal alles richtig verkabelt.

JellbieO
27.10.2009, 17:03
Kann mir den keiner helfen?
Keiner ne Idee?

Hubert.G
27.10.2009, 20:31
Ich weiss nicht was für ein Testprogramm in BASCOM du verwendet hast. Es wird da meist kein R/W verwendet. Dieser Pin liegt dann auf GND.
Bei Fleury wird R/W verwendet und darf nicht auf GND liegen.