Forum: Mikrocontroller und Digitale Elektronik ?-Operator in C


von Bot-Builder (Gast)


Lesenswert?

Guten Abend allerseits!

Ich habe gerade meinen ersten, fast eigenen kleinen Bot fertiggestellt. 
Nur fast eigen deswegen, weil ich zunächst den Bot aus dem Elektorbuch 
Embedded Robotics nachgebaut habe. Dabei wird ein Board mit 89AT8252 
Controller verwendet. Als Entwicklungsumgebung wird der uC/51 ANSI C 
Compiler von Wickenhaeuser eingesett.

Und jetzt zu meiner eigentlichen Frage. In der im Buch beschriebenen Lib 
für die LC-Displayansteuerung findet sich für die Positionierung des 
Cursors folgende Funktion:

1
void lcd_goto(unsigned char line,unsigned char col)
2
{
3
   cursorpos = ((line & 1) ? 0x40:0)  + (col & 0x0f);
4
}


Ich verstehe den Ausdruck nicht. Was bewirkt vor allem ? 0x40:0  ?

Ich habe nirgendwo etwas über einen Operator ? gefunden. Und wie ist 
eine Hexazahl 0x40:0 zu lesen? Oder liege ich total daneben?

Wie gesagt, ich arbeit mich erst in das Thema ein. Und habe alle docs, 
Demos und Tutorien, die ich gefunden habe durchgearbeitet.

Könnte mir bitte jemand diesen Ausdruck erläutern?

Vielen Dank.

Und Viele Grüße

Uwe

von Uwe .. (uwegw)


Lesenswert?


von micha (Gast)


Lesenswert?

Kurzschreibweise von IF-THEN-ELSE !

cursorpos =((line & 1) ? 0x40:0)

ist gleichbedeutend mit

  IF (line & 1)
    cursorpos = 0x40;
  ELSE
    cursorpos =0;

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
Noch kein Account? Hier anmelden.