Mit Uart 16Bit Übertragen

Gast #2673239
Lesenswert?

1
int x=588
2
UART_putc(*((char*)&x+1)); //High-Byte?
3
UART_putc(*((char*)&x));   //Low-Byte

Oups, ist doch nicht das selbe, welches das High-Byte oder Low-Byte ist, 
hängt vom Endian-Mode deines Compiler/CPU Systems ab und ist nicht in 
jedem Fall portierbar, Deine Methode mit dem shiften hingegen schon! ;o)
Gast #2673335
Lesenswert?

ich kann leider nur denn Pixel setzen von 0 bis 255 in X=Richtung sowie 
in Y=Richtung.
Viellesicht kann mir da einer helfen
mfg

1
//SENDEN
2
int x=588
3
int y=388
4

5
uart_putc(13 );
6
uart_putc(*((char*)&x+1)); //High-Byte?
7
uart_putc(*((char*)&x));   //Low-Byte 
8
uart_putc(*((char*)&y+1)); //High-Byte?
9
uart_putc(*((char*)&y));   //Low-Byte 
10
uart_putc( m );            //0=invert,1=not invert
11

12

13
//EMPFANG
14
  if (c==13)      // Set Pixel
15
   { unsigned char x1,x2,y1,y2,c;    
16
     int  xpos;
17
     int  ypos;
18
     x1=uart_getchar();  //HighByte in X
19
     x2=uart_getchar();  //LowByte  in X
20
     y1=uart_getchar();  //HighByte in  Y
21
     y2=uart_getchar();  //LowByte in Y
22
     c=uart_getchar();   //0=invert,1=not invert
23
     xpos=x1;  
24
     xpos+=x2;
25
     ypos=y1;  
26
     ypos+=y2;
27
     lcd_setpixel(xpos,ypos,c);
28
   }

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