RS 232 und ATMEGA 163 und STK500

Gast #47153
Lesenswert?
• ▲
▼
Zervus

Also ich habe folgendes Problem:Ich will Daten vom PC an den uP senden
und diese dann mit Hilfe der Leds anzeigen lassen
Testeweise mache ich das mit CAvr von CodeWizard. Wenn ich jetzt mit
dem Terminal "0" als Hex Zahl schicke wird auf den Leds 128
(10000000)
statt alles Nullen angezeigt. Der Wert weicht immer um 128 vom dem Wert
ab den ich schicke.
Was mache ich falsch?

Code:
while(1)
{
  if (UCSRA.7==1) //Daten wurden empfangen
  {
     char Temp;
     Temp=getchar();
     PORTB=Temp;
  }
}
Bsp:
Gesendet 0-> angezeigt wird 128
Gesendet 1-> angezeigt wird 129
usw..

Mfg DarkMarine
Gast #47157
Lesenswert?
• ▲
▼
Das zeichen 0 wird im ASCII-Code mit 00110000 dargestellt. Diese Zahl
must du wieder in den Dezimalen wert umrechnen. Hier ergibt das 48. Ich
verstehe nur nicht warum bei dir 128 herauskommt...

was auch noch denkbar ist, dass getchar() auf irgend ein Register
zugreift.
versuch mal: Temp=UDR;


Sonst weiß ich auch nicht weiter.

Gruß, Florian
Gast #47158
Lesenswert?
• ▲
▼
Hab die Lösung ;)

Ich habe die Baudrate von PC und uP von 9600 auf 115200 angehoben.
Jetzt funktioniert es.(Ist zwar unlogisch aber was solls)

Das mit dem 0=48 im ASCII Code war mir schon klar, aber bei mir war die
verschiebung ja ein bischen größer.
Naja egal.

Aber Danke für eure Hilfe!

Mfg DarkMarine

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.