Forum: Mikrocontroller und Digitale Elektronik ISR Routine, merkwürdiges Verhalten?


von Hall0 (Gast)


Lesenswert?

Hallo

ich arbeite gerade an einer seriellen schnittstelle und habe folgendes 
problem:

Ich möchte ganz einfach nach erhalt eines bytes, eine led einschalten.
Allerdings klappt das nur, wenn ich die Zeile "Byte = UDR;" lösche.
Mache ich es so wie unten gezeigt, leuchtet nichts mehr. Woran kann das 
liegen?
Datentyp von Byte ist volatile unsigned char
1
ISR(UART_RX_vect)
2
{
3
4
PORTB |= (1<<PB0);
5
Byte = UDR;
6
7
}

danke und gruss
Detlef

von gast (Gast)


Lesenswert?

Hast du auch irgendwo das DDRB Register gesetzt?

von Hall0 (Gast)


Lesenswert?

Hallo ja natürlich, die LED kriege ich ja zum leuchten ;)
nur wenn ich die Zeile "Byte = UDR;" hinzufüge, leuchtet sie nicht mehr

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wer oder was ist Byte?

von holger (Gast)


Lesenswert?

>nur wenn ich die Zeile "Byte = UDR;" hinzufüge, leuchtet sie nicht mehr

Dann schaltest du sie irgendwo wieder aus. Die Einschaltzeit
ist vermutlich zu kurz. Und wenn du UDR nicht ausliest
feuert der Interrupt dauernd und schaltet sie immer wieder ein.

von Hall0 (Gast)


Lesenswert?

ja das wars, ich dusel :P

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.