Hallo! Verstehe folgenden C-Code nicht: void LCD_PutPixel(unsigned char x, unsigned char y, unsigned char Set) { unsigned int XY; unsigned char bitByte; XY=0x200; XY=XY+(y*40); XY=XY+(x/6); LCD_SendData(XY & 0x00FF); LCD_SendData(XY>>8); LCD_SendCmd(0x24); //pointer set bitByte=5-(x % 6); Set? bitByte|=0xF8: bitByte|=0xF0; LCD_SendCmd(bitByte); //0b1111SXXX , s is set/reset, xxx is bit number xxx //(Each memorybyte i six graphics bits (pixels)) } Was bedeutet diese Zeile: Set? bitByte|=0xF8: bitByte|=0xF0; Mich iritiert das Fragezeichen! Was soll das?
Fragezeichen == IF-Sequenz if (0 != Set) { bitByte |= 0xF8 } else { bitByte|=0xF0; }
Das ist eine Fallunterscheidung: Kannst du auch (umständlich) so schreiben: if (set) { bitByte|=0xF8; } else { bitByte|=0xF0; } Gruß Olli
Sieht in dieser Form aber endcool aus (auch wenn's hinterher nicht gerade besser lesbar ist). ;-) MfG, Khani
ja, man kann auch ganze Programme in einer Codezeile schreiben... Prügelstrafen sollten wieder eingeführt werden!
Vielen Dank für die Info! Und was bedeutet diese Zeile: bitByte=5-(x % 6);
% ist die Modulo-Operation. x % 6 ergbit den Rest der ganzzahligen Division von x durch 6. Das wird also eine Zahl zwischen 0 und 5 sein.
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.