Integer über rs232

Gast #475006
Lesenswert?
• ▲
▼
Hallo

Ich möchte vom PC aus mit folgenden Code ein int(m_e_adresse) über die 
r232 an meinen Meg16 übertragen:
flag =((char)(m_e_adresse>>8));

ComWrite(0,flag);
ComClose(0);
flag = ((char) m_e_adresse);
ComWrite(0,flag);

ComClose(0);
Und auf der Meg16 Seite siehts dan so aus:
int adresse;
if (((UCSRA & (1<<RXC)))){uart_getc();}

  int RXD = UDR;
  if (((UCSRA & (1<<RXC)))){uart_getc();}
  int RXD1 = UDR;
  adresse =  (int) (RXD<<8);
  adresse |=  (int) RXD1;



  LCD_Print(0,0,"Adresse:%i",adresse);
Leider kommt auf meinem LCD nur irgendwelche Ergebnisse, aber nicht das 
was ich schicke????
Frank
#475512
Lesenswert?
• ▲
▼
Ich empfehle das auch auf der sendenden Seite zu machen.

* auf der sendenden Seite beide Bytes ausgeben
* auf der empfangenden Seite beide empfangenen Bytes ausgeben
* auf der empfangenden Seite den aus den Bytes zusammengebauten
  int ausgeben.

Damit kann man dann ganz leicht kontrollieren, bis wohin der
Prozess noch stimmt und ab wo Unsinn passiert.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.