UART wieder einmal

Gast #91628
Hallo!

Ich benutze einen ATMega16 und programmiere mit AVR-GCC bzw. winavr.
Das Senden von einzelnen Zeichen funktioniert.
Im angehängten Programm soll "Test" and den PC geschickt werden.
Das erste Mal funktioniert auch super, doch dann wird nur noch "Te"
gesendet.

Was mache ich da falsch?


Danke,
Thomas K
Angehängte Dateien:
Gast
liegt vielleicht daran, dass Du aus einer Interrupt-Routine heraus eine
andere Routine aufrufst. Irgendwann wird das zu langsam...
Warum überhaupt so kompliziert mit Timer etc?
Es würde völlig reichen, in der Main UARTsendChar nach Belieben
aufzurufen.
Ich denke, Du hast ein Timing-Problem zwischen Timer und
Hauptprogramm.
Ausserdem solltest Du die Baudrate entweder als "#define" übergeben
oder feste Werte eintragen. Variablen sind erst erforderlich, wenn Du
die Baudrate per Software vorgeben willst (eher selten).
Unsauber ist dein Programm auch noch wegen Mehrfachzuweisungen
(UBRRL).
Gruß Rahul
Gast
in UARTsendchar ist ein kleiner semantischer fehler mit großer
auswirkung: ein logisches "&&" statt einem bitweisen "&"!

du musst den AND-operator ("&") anwenden, um UDRE im UCSRA zu
maskieren.
Gast
Also ein Timing Problem kann ich mir nicht vorstellen.
Die Zeit zwischen den Interrupts ist länger als eine Sekunde!

Außerdem hat der Interrupt nur den Zweck nicht gleich den COM-Port zu
überfluten. Ist also sowieso nur mal zum Testen

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.