JellbieO
24.10.2009, 15: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 :)
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 :)