www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USART und mein Code


Autor: PowerProgrammer (Gast)
Datum:

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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In Zeile 42 ist ein logischer Fehler.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast wahrscheinlich die Fuses nicht gesetzt.....

Otto

Autor: PowerProgrammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@stefb: Lustig, pech nur, dass es keine Zeile 42 gibt;)

http://rafb.net/p/vbKsup34.html <-- da wäre der Code!

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

Autor: 2921 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wuerd mit einem Scope mal messen was denn so rauskommt.

Autor: PowerProgrammer (Gast)
Datum:

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

Autor: Otto (Gast)
Datum:

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

Autor: PowerProgrammer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr komisch, ich habe ja ein fertiges Programm auf den ATMega gepackt, 
da klappte das mit dem internen DingOo
Aber probieren geht über studieren...

Autor: PowerProgrammer (Gast)
Datum:

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

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

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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeile 23 war's - schön ;-)

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.