Forum: Mikrocontroller und Digitale Elektronik Warum empfängt mein Uart nichts?


von Weihnachtsmann (Gast)


Angehängte Dateien:

Lesenswert?

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

von Santa Klaus (Gast)


Lesenswert?

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.

von Jens123 (Gast)


Lesenswert?

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

von Santa Klaus (Gast)


Lesenswert?

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.

von Weihnachtsmann (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.