Gast
#316482
Hi,
wisst ihr eine Lösung, wie ich an dieses Problem (jedenfalls ist es für
mich eins) am Besten rangehe?
Also an sich verwende ich das Ethernut-Betriebssystem für meinen
ATmega128. Dort ist auch schon ein LCD-Modul implementiert. Dort sind
die Daten für die 4-Bit Ansteuerung des Moduls von PD4-PD7 und bei mir
in echt leider total verteilt (D0=Pb5, D1=PE3, D2=PF1 und D2=PF0). In
der Headerdatei sind folgende Define-Anweisungen:
#define LCD_DATA_PORT PORTD /*!< Port output register of \ref
LCD_DATA_BITS. */
#define LCD_DATA_DDR DDRD /*!< Data direction register of \ref
LCD_DATA_BITS. */
#define LCD_DATA_BITS 0xF0 /*!< \brief LCD data lines, either
upper or
lower 4 bits. */
und so sieht z.B. ein Teil des Codes aus:
outp(inp(LCD_DATA_DDR) | LCD_DATA_BITS, LCD_DATA_DDR);
outp((inp(LCD_DATA_PORT) & ~LCD_DATA_BITS) | (nib & LCD_DATA_BITS),
LCD_DATA_PORT);
Wie programmiere ich es nun, dass er unter LCD_DATA_BITS meine
richtigen PINS erkennt und was schreibe ich für LCD_DATA_PORT und
LCD_DATA_DDR.
Gibt es da einen Trick, oder muss ich den C-Code ändern. Habe leider
keine Möglichkeit die Pinbelegung zu ändern.
Für Hilfe wär ich sehr dankbar!!!
Gruß, Stefanie