Hallo zusammen. Ich versuche gerade ein TG12864B-13 LCD Modul von Pollin in betrieb zu nehmen. Da gibts ja auch schon recht nützliche bibliotheken dazu. Trotzdem habe ich noch eine Programmiertechnische frage. Und zwar gibts in dieser Bibliothek logischerweise einen abschnitt wo die Pins konfiguriert werden. Das schaut dann wie folgt aus: // Ports #define LCD_CMD_PORT PORTA // Command Output Register #define LCD_CMD_DDR DDRA // Data Direction Register for Command Port #define LCD_DATA_PIN PINC // Data Input Register #define LCD_DATA_PORT PORTC // Data Output Register #define LCD_DATA_DDR DDRC // Data Direction Register for Data Port // Command Port Bits #define CD 0x07 // Data/Control (RS) PinNumber #define RW 0x06 // R/W PinNumber #define EN 0x02 // EN PinNumber #define CS1 0x05 // CS1 PinNumber #define CS2 0x04 // CS2 PinNumber //#define LCD_NO_RES // uncomment this line if you have an pullup on reset was ich nun nicht verstehe sind diese Hexadezimalzahlen bei den "Command Port Bits". Da sollte doch eigentlich jedem der Pins CD, RW, EN usw ein spezifischer pin zugewiesen werden. Warum stehen da nun diese Hex-Zahlen? Bedeutet zB 0x07 das gleiche wie PA7? bin etwas verwirrt... wäre für infos sehr dankbar lg tom
ok danke erstmal für die rasche antwort. Was ich noch nicht verstehe: Wie kommt der Bezug zum porta konkret zustand? Ich meine in der zeile #define CD 0x07 wird nirgends bezug darauf genommen. Woher weiss der controller dass es sich um pin7 des ports A handelt und nicht etwa port C? gruss tom
Hi
>Woher weiss der controller dass es
sich um pin7 des ports A handelt und nicht etwa port C?
Z.B.:
LCD_CMD_PORT |= (1<<CD);
MfG Spess
okey, das heisst zum zeitpunkt der definition ist das noch nicht festgelegt. besten dank
tom schrieb: > okey, das heisst zum zeitpunkt der definition ist das noch nicht > festgelegt. Die vordefinierte Konstante "PA7" hat genauso wenig Bezug zum Port A wie "7", "0x07" etc. Genau deswegen muß man den LCD_CMD_PORT ja noch zusätzlich zum Pin angeben. Noch genauer gesagt, bei:
1 | LCD_CMD_PORT |= (1<<CD); |
Wird einerseits das Makro LCD_CMD_PORT verwendet, das den Port festlegt und andererseits das Makro CD, das die Pinnummer festlegt. Und falls das noch nicht klar war: aus Sicht des Compilers sind 0x07, 7, PA7, PB7, PD7 ... alles das selbe. Nämlich die Zahl 7 (sieben). XL
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.