mikrocontroller.net

Forum: Compiler & IDEs Integer über rs232


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Vielleicht sollte ich noch sagen, dass ein Byte schicken einwandfrei 
funktioniert. Also die rs232 ist richtig init. Beim Byte verstehen sich 
PC und Meg16.
Frank

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was kommen denn für Werte?
Schicke mal eine 1 und ein 256 an den AVR und dann schreib mal was am 
LCD ausgegeben wird.
Von der Endianess sollte das eigentlich passen, falls du den AVR-GCC 
verwendest.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Das komische ist ja das alle Werte bis 256 kommen, aber sobald es in den 
int Bereich geht kommt nur Kauderwelsch????
Frank

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt Kauderwelsch? Immer etwas anderes?

Gib doch einfach mal am LCD beide Bytes aus, dann siehst du ja genau was 
am Controller ankommt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.