Hallo
Ich habe nun die Datenblätter des RNMega8Plus und des RN-LCD-Adapters angeschaut und die Pinbelegungen der Steckverbindungen überprüft:
Code:
// Pinout LCD Display-Anschluß nach Roboternetznorm RN-LCD-Adapter
// Pin 1 LCD DB7
// Pin 2 LCD DB6
// Pin 3 LCD DB5
// Pin 4 LCD DB4
// Pin 5 Licht ein/aus per Port (da EN2 hier nicht benötigt wird)
// Pin 6 LCD EN
// Pin 7 LCD R/W
// Pin 8 LCD RS
// Pin 9 GND LCD GND und Licht Kathode
// Pin 10 +5V LCD VCC und Licht Anode// LCD DB4-DB7 <--> PORTD Bit PD0-PD3
// Pinout LCD Display-Anschluß nach Roboternetznorm RNMEGA8PLUS
// Pin 1 DB7 PD5
// Pin 2 DB6 PD4
// Pin 3 DB5 PD3
// Pin 4 DB4 PD2
// Pin 5 EN2 PD7 (wird nur bei manchen LCDs benötigt)
// Pin 6 EN PC3
// Pin 7 R/W PD6
// Pin 8 RS PC2
// Pin 9 GND
// Pin 10 +5V
#define LCD_PORT PORTD
#define LCD_DDR DDRD
#define LCD_DB PD4
// LCD RS <--> PORTD Bit PD4 (RS: 0=Data, 1=Command)
#define LCD_RS PD2
// LCD EN <--> PORTD Bit PD5 (EN: 1-Impuls für Daten)
#define LCD_EN PD3
Oben: Belegung des RN-LCD-Adapters. Laut Schaltplan stimmt auch die Verbindung zu den 2x9 Pins des aufsteckbaren LCD.
Mitte: Belegung des LCD-Ports auf dem RNMega8Plus. Stimmt mit der Abschluß am Adapter überein bis auf E2
Unten: Die Defines in lcd-routines.h passen nicht zu der Belegung vom RNMega8Plus!!!
Außerdem wird der R/W-Pin nicht definiert. Da beim Schreiben das Busy nicht geprüft wird und auch keine lesenden Funktionen vorhanden sind gehe ich davon aus, dass die Lib davon ausgeht, dass R/W low ist (Brücke zu GND. Ohne Brücke ist auch die jumperbare Verbindung der freien D0 bis D3 zu GND kritisch!).
Gruß
mic
http://www.robotikhardware.de/download/rnmega8plus.pdf
http://www.robotikhardware.de/downlo...CD_adapter.pdf
[Edit]
Code:
// Pinout LCD Display-Anschluß nach Roboternetznorm RNMEGA8PLUS
// Pin 1 DB7 PD5
// Pin 2 DB6 PD4
// Pin 3 DB5 PD3
// Pin 4 DB4 PD2
// Pin 5 EN2 PD7 (wird nur bei manchen LCDs benötigt)
// Pin 6 EN PC3
// Pin 7 R/W PD6
// Pin 8 RS PC2
// Pin 9 GND
// Pin 10 +5V
// Defines der Ports des RNMega8Plus für die LCD-Lib von Peter Fleury
// R/W geht auf PD6!
#define LCD_PORT PORTD /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 2 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 3 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 4 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 5 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT PORTC /**< port for RS line */
#define LCD_RS_PIN 2 /**< pin for RS line */
#define LCD_RW_PORT PORTD /**< port for RW line */
#define LCD_RW_PIN 6 /**< pin for RW line */
#define LCD_E_PORT PORTC /**< port for Enable line */
#define LCD_E_PIN 3 /**< pin for Enable line */
Lesezeichen