Warum empfängt mein Uart nichts?

Gast #129043
Hallo zusammen

Ich möchte mit dem Terminal Programm ein Zeichen auf den
Microcontroller senden und auf dem Port ausgeben.

Leider geht es nicht.
Die Hardware ist OK mit einem ähnnlichen Programm mit anderem
Microcontroller geht es

Gruss

Bald kommt der Weihnachtsmann
Angehängte Dateien:
Gast #129044
Du mußt mindestens im UCSRB noch die Bits RXCIE und TXCIE setzen, um die
Interrupts freizuschalten.  Mit den Bits RXEN und TXEN enablest Du nur
den USART-Empfangs- bzw. Sendeteil.
Gast #129045
warum so umstzaendlich??

int_rxc:
;in temp,SREG ;CPU-Status sichern
;push temp                ;temp auf dem Stack sichern
   in temp2, UDR             ;später Wert ausgeben
out PORTC, temp2
;   pop temp
;out sreg, temp           ;CPU-Status aus dem Stack wieder herstellen
reti                         ;Interrupt beenden

bei kleinen programmen ohne dass du viele register brauchst kannst das
auch so einfacher loesen
Gast #129046
Allerdings solltest Du das Auskommentieren dieser läppischen vier Zeilen
kommentieren mit:

1. Nirgendwo sonst im Programm darf das Register temp2 verwendet
werden.

2. In den Interrupthandler darf später niemals auch nur ein einziger
"tst-", "cpi-", "clr-", "or-" oder sonstiger Befehl eingebaut
werden, der sich auf die Statusflags auswirkt.

Ich halte es für eine sehr gute Idee, in Interrupthandlern
grundsätzlich das SREG sowie alle verwendeten Register auf dem Stack
zu sichern.  Dann kann man nämlich in dem Handler machen was man will -
es kann nichts mehr schiefgehen.
Gast #129047
Hallo

Mal soweit danke empfangen kann ich beim senden habe ich noch ein
Problem das ich vermutlich lösen kann

Gruss

Es kommt bald der Weihnachtsmann

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.