USART und mein Code

Gast #691431
Lesenswert?

Hallo!

Ich möchte ein bisschen was über den USART meines ATmega16 senden und am 
PC anzeigen lassen. Dazu habe ich ein Programm in C geschrieben, dass 
ca. alle 500 ms ein Zeichen senden soll. Aber ankommen tut am PC etwas 
anderes, da steht dann diese eine Zeichen, dass immer kommt, wenn er das 
Zeichen nicht kennt.
Ich habe keine Ahnung, woran es liegen könnte, Baudrate und so ist alles 
eingestellt. Ich benutze den Code, der überall in diversen Tuts samt des 
Datenblattes steht.
Hatte jemand schonmal ein ähnliches Problem? Was mache ich falsch? (Es 
muss übrigens an meiner Software liegen, ich habe ein anderes Programm, 
das läuft einwandfrei, dass aber nicht von mir ist und auch nicht in C)

Vielen Dank schon mal im Voraus!
Gast #691463
Lesenswert?

Scope? Ist das ne Abkürzung für Oszilloskop? Würde ich gerne machen, 
aber ich besitze keins. Ich bin ein armer Schüler, so dass ich mir 
nichtmal nen gescheiten Programmer leisten kann und ein 
Billig-Eigenbau-Teil nutzen muss;)

Jedenfalls habe ich keine Idee, wie ich die Daten sonst auslesen kann:( 
Was kann ich weiterhin tuen?
Gast #691464
Lesenswert?

> Otto: Wie meinst du das denn?
> Die CPU-Geschwindigkeit falsch? Ist
> nicht, ist Werkseinstellung mit 1 MHz Intern.

lies bitte das Tutorium mit dem internen Oszillator
kannst Du bei der UART keinen Blumentopf gewinnen.

Du brauchst einen Quarz und musst auf ext. Oszillator
umstellen.

Gruss Otto
Gast #691486
Lesenswert?

Der |Jan| aus dem IRC-Chat hat den Fehler gefunden! Der Junge ist 
genial, er hat bemerkt, dass ich im 7-Bit-Modus bin und nicht im 8-Bit:D

Die entsprechende Zeile muss lauten:
UCSRC = (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);


Vielen Dank, Leute!
#691487
Lesenswert?

Poste bitte deinen Code hier. Soooo gross ist der Code nun auch
wieder nicht.

  UCSRC = (1<<URSEL)|(1<<UCSZ0); // Asynchron 8N1

Damit hast du aber nicht 8 Bit eingestellt, sondern nur
6 Bit. Kein Wunder, dass dein PC damit nichts anfangen
kann.

Solche Bitbelegungen immer im Datenblatt nachschlagen!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren