GLCD Ansteuerung in C

Gast #1860235
Lesenswert?

Hi,

kann mir bitte einer sagen was in der letzten #define Zeile gemacht 
wird?

#define   SED1335_M0         0
#define   SED1335_M1         0
#define   SED1335_M2         0
#define   SED1335_WS         0
#define   SED1335_IV         1

#define   SED1335_SYS_P1       0x10 | (SED1335_IV << 5) | (SED1335_WS << 
3) | (SED1335_M2 << 2) | (SED1335_M1 << 1) | SED1335_M0

Zusammengezählt oder?
Danke.
Gast #1860246
Lesenswert?

Hi,

super das brauche ich.
Also 30 Hex.
Das dachte ich mir.
#define   SED1335_FX         7
#define   SED1335_FY         7
#define   SED1335_WF         1

#define   SED1335_SYS_P2       0x00 | (SED1335_WF << 7) | SED1335_FX

Das ergibt dann 87 oder?

Wie habt ihr das ausgerechnet?
#1860265
Lesenswert?

Trexis5 schrieb:
> Hi,
>
> super das brauche ich.
> Also 30 Hex.
> Das dachte ich mir.
> #define   SED1335_FX         7
> #define   SED1335_FY         7
> #define   SED1335_WF         1
>
> #define   SED1335_SYS_P2       0x00 | (SED1335_WF << 7) | SED1335_FX
>
> Das ergibt dann 87 oder?
>
> Wie habt ihr das ausgerechnet?

Der Reihe nach durchgehen

Da ist erst einmal  0x00   oder in Bitschreibweise    00000000
Dann   SED1335_WF << 7
SED1335_WF ist laut define gleich 1
also  1<<7
also  eine 1 7 mal nach links geschoben

aus 00000001  wird daher 1000000

       00000000       (das bisherige Zwischenergebnis aus 0x00)
 ODER  10000000       ( von SED1335_WF << 7 )
  ---------------
       10000000

dann der nächste Term  SED1335_FX, das ist laut define 7 oder in 
Bitschreibweise 00000111

       10000000      (das bisherige Zwischenergebnis)
 ODER  00000111      (von SED1335_FX)
  ----------------
       10000111

und das ist wiederrum in Hex-Schreibweise  0x87


Einfach durchrechnen. Jeden Einzelterm ansehen, was macht das in 
Bitschreibweise und die einzelnen Bits miteinander verodern.
Gast #1860361
Lesenswert?

Hi,

ich habe noch was.
Was bedeutet das?
x ist ein Wert von 0-240



#define   SED1335_FX  7


if(color)
  tmp |= (1 << (SED1335_FX - (x % 8)));
else
  tmp &= ~(1 << (SED1335_FX - (x % 8)));


tmp ist dann das ergebnis

Danke
Gast #1860368
Lesenswert?

Vielleicht wäre jetzt doch der Zeitpunkt gekommen, sich mal ein C-Buch, 
oder zumindest ein C-Online-Tutorial zuzulegen. Ganz ohne grundlegende 
Kenntnisse wird das nichts.

|= bedeutet: die linke Seite wird mit der rechten binär ver-odert.
&= bedeutet : die linke Seite wird mit der rechten binär ver-undet.

<< ist binäres schiften nach links

- ist minus

% ist modulo

() sind Klammern.

if und else sind C-Schlüsselworte, die bedeuten "if" und "else".

Den Rest bekommst du selber hin.

Oliver
Gast #1860454
Lesenswert?

Hi,

danke.
Das wars schon.
Ich habe schon ein Display aufen mit Bascom Code.
Nun wollte ich nur einige Dinge aus dem C-Code in Bascom umstricken.
Das erste waren die Parameter, ich übergebe diese als Gesamter wert und 
im dem C-Code werden die zusammengestrickt und dann gesendet.
Das stimmt nun auch bei mir.
Der letzte Code ist für die 4 Farben. Das habe ich noch garnicht 
umgesetzt.
Hätte mich nur interessiert was da rauskommt.

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