Mit Uart 16Bit Übertragen

Gast
>jens schrieb:
>> Gibst da noch eine andere Möglichkeit.
>nö
Doch! im Prinzip dasselbe, aber etwas direkter...
1
int x=588
2
UART_putc(*((char*)&x));
3
UART_putc(*((char*)&x+1));
Gast
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
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
   }
>    xpos=x1;
>    xpos+=x2;

Du musst schon die Bytes wieder richtig zusammensetzen.

wenn du die Ziffern 2 und 3 hast, wird daraus nicht das Ergebnis 23, 
indem du die 2 und die 3 addierst.

   xpos = x1 * 256 + x2;

oder

   xpos = x1 << 8 + x2;

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.