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.