Pindefinitionen bei grafischem LCD

Gast #3717907
Lesenswert?

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
#3718038
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren