Forum: Mikrocontroller und Digitale Elektronik Problem mit UART & Interrupt


von Christoph Budelmann (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich würde es gerne schaffen, dass beim Empfang eines Zeichens über die
serielle Schnittstelle ein Interrupt ausgelöst wird und eine kurze
Routine abgearbeitet wird. Klingt eigentlich nicht sonderlich
schwierig, funktioniert aber trotzdem nicht.

Zum ersten Ausprobieren fällt der Atmega16 in eine Endlosschleife und
soll beim Empfang eines Zeichens dieses stumpf wieder zurücksenden, was
er allerdings nicht tut. Ohne Interrupt, mit der Senderoutine direkt in
der Schleife, funktioniert es hingegen.

Vielleicht weiß ja jemand Rat.

Gruß
Christoph

von Michael (Gast)


Lesenswert?

Ich vermisse die generelle Interrupt-Freigabe, so etwas wie SEI() oder
SREG |= 128 oder was ähnliches.
Michael

von Christoph Budelmann (Gast)


Lesenswert?

Findet sich in der Mitte von main.

von Dieter Brüggemann (Gast)


Lesenswert?

Hallo

Du mußt den  RX Complete Interrupt Enable noch erlauben, im UCSRB.

UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE) ;

MFG
Dieter

von crazy horse (Gast)


Lesenswert?

stimmen denn die Interrupt-Vektoren?
Ausserdem muss RXCIE gesetzt sein.
Um welchen Prozessor gehts überhaupt?

von Christoph Budelmann (Gast)


Lesenswert?

Einen Atmega16. RXCIE werde ich gleich einmal setzen.
Danke soweit schon einmal.

Christoph

von Christoph Budelmann (Gast)


Lesenswert?

Vielen Dank für die Hilfe - ist RXCIE gesetzt, funktioniert alles
prächtig.

Christoph

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.