mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS 232 und ATMEGA 163 und STK500


Autor: Heiss Michael (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gleiche Initialisierung PC/AVR
(Anzahl Datenbits, parität, Anzahl Stopbits)?

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das empfangene Zeichen ist im ASCII-Code. Du must es in Dezimal-Wert
umrechnen.

Gruß, Florian

Autor: Heiss Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem STK 200 und dem 8515 hat es funktioniert (Nur USR.7)
Wie von ASCII Code in Dezimal Wert umwandeln?

Die Einstellungen sind identisch.

Autor: Florian Pfanner (Gast)
Datum:

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

Autor: Heiss Michael (Gast)
Datum:

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

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.