Vermutlich wird diese LETZTE HILFE etwas bringen. Der Portstecker an der RNControl ist total be..oppt - ähhhhh - verwirrungstiftend bezeichnet. PIN0 von PortC - also PC0 geht nämlich an den Portstecker-Pin 1 - und so weiter.Zitat von pod32
leider hilft das auch nicht.
Hier mal mein komplettes WinAVR Projekt:
http://www.dateiupload.net/download.php?id=BA997A021
Vermutlich wird diese LETZTE HILFE etwas bringen. Der Portstecker an der RNControl ist total be..oppt - ähhhhh - verwirrungstiftend bezeichnet. PIN0 von PortC - also PC0 geht nämlich an den Portstecker-Pin 1 - und so weiter.Zitat von pod32
Ciao sagt der JoeamBerg
Was ist daran bekloppt? Die Pins der Stecker beginnen bei der Zählung nun mal bei 1 und die Ports bei 0. Wie will man das sonst machen?
---------------o00o----' (_)' ----o00o----------------
Wer Rechtschreibfehler findet darf sie behalten.
Ohh - das wird mein Fehler sein!
Ich habe es bisher so angeschlossen, dass der "PC1" auf Pin1 usw. liegt.
Unten das entsprechende Code-Snippet:
Ich werde es heute Abend mal testen - Danke!Code:/** * @name Definitions for 4-bit IO mode * Change LCD_PORT if you want to use a different port for the LCD pins. * * The four LCD data lines and the three control lines RS, RW, E can be on the * same port or on different ports. * Change LCD_RS_PORT, LCD_RW_PORT, LCD_E_PORT if you want the control lines on * different ports. * * Normally the four data lines should be mapped to bit 0..3 on one port, but it * is possible to connect these data lines in different order or even on different * ports by adapting the LCD_DATAx_PORT and LCD_DATAx_PIN definitions. * */ #define LCD_PORT PORTC /**< 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 4 /**< pin for 4bit data bit 0 */ #define LCD_DATA1_PIN 5 /**< pin for 4bit data bit 1 */ #define LCD_DATA2_PIN 6 /**< pin for 4bit data bit 2 */ #define LCD_DATA3_PIN 7 /**< pin for 4bit data bit 3 */ #define LCD_RS_PORT LCD_PORT /**< port for RS line */ #define LCD_RS_PIN 3 /**< pin for RS line */ #define LCD_RW_PORT LCD_PORT /**< port for RW line */ #define LCD_RW_PIN 2 /**< pin for RW line */ #define LCD_E_PORT LCD_PORT /**< port for Enable line */ #define LCD_E_PIN 1 /**< pin for Enable line */
Sollte ich es tatsächlich verwechselt haben, reicht es doch aus, es in der lcd.h jeden Pin um 1 zu erniedrigen. Oder?
Hoffentlich war es das. Ich jedenfalls hatte mich da vertan. Aber ich weiß jetzt eindeutig, dass das LCD läuft, meins jedenfalls, auch wenn der L293D eingesetzt ist und auch wenn der DIL-Schalter die LEDs an den PortC koppelt. Da blinkt es weihnachtlich, wenn das LCD neu getextet wird.Zitat von pod32
Hmmm. Das verstehe ich nicht eindeutig. Ich habe das jedenfalls so verdrahtet wie hier im Auszug aus meinem Code - mit einem Zwischenstecker an meinem Steckbrett, der mir Lötarbeit erspart hat. Ich habe aber möglicherweise eine geringfügig andere lcd*.h.Zitat von pod32
Viel ErfolgCode:/* ================================================================================ Controller | PortC Mehrfachstecker an meinem Breadboard | RNControl-Stecker C - - - - - - - - - - - - - - - - - v - - - v - - - v - - - - - - - - LCD 24x2, pin for RS line 1 C3 = RN-C4 LCD 24x2, pin for RW line 2 C2 = RN-C3 LCD 24x2, pin for ENABLE line 3 C1 = RN-C2 GND 4 RN-C9 - VCC 6 RN-C10 - LCD 24x2, pin for 4bit data bit 0 8 C4 = RN-C5 LCD 24x2, pin for 4bit data bit 1 9 C5 = RN-C6 LCD 24x2, pin for 4bit data bit 2 10 C6 = RN-C7 LCD 24x2, pin for 4bit data bit 3 11 C7 = RN-C8 */ /* ============================================================================== */
Ciao sagt der JoeamBerg
\/ Es funktioniert! \/
Fazit: Mit der Pin<->Portzuordnung an PortC höllisch aufpassen!
Vielen Dank! Insbesondere @ oberallgeier
Schöne Feiertage
Lesezeichen