Serielle Schnittstelle ATmega128L

OP #1049703
Lesenswert?
• ▲
▼
Hallo Leute,

ich habe da ein Problem. ich möchte die Serielle schnittstelle für eine 
gewisse Zeitabschalten. Ich sende derzeit vom Mikrocontroller Daten zum 
PC dies mache ich in dem ich immer wenn das UDR Register leer ist etwas 
neues reinschreibe.Hierfür gibt es einen passenden Intterupt: jetzt bin 
ich hingegangen und habe diesen und dann anshcliessend den kompletten 
sendeinterrupt gespeert:

So:

UCSR1B &= ~( 1 << UDRIE1 );
UCSR1B &= ~(1<<TXEN1);

Nachdem ich nun aber den Interrupt wieder einschalte mit:

UCSR1B |= (1<<TXEN1);
UCSR1B |= ( 1 << UDRIE1 );

bekomme ich durchgehend nullen und zwischendrin meine daten übertragen. 
Woran liegt das und wer kann das Problem lösen. Danke im Vorraus euer 
Hans
Gast #1049709
Lesenswert?
• ▲
▼
der TXC-Interrupt wird ja ausgelöst, wenn entsprechend das TXC-flag in 
UCSR1A gesetzt ist. gelöscht wird das entweder durch den Aufruf des 
Interruot oder durch das schreiben von EINS an die entsprechende 
Stelle...UCSR1A |= (1<<TXC);

Warum dein Interrupt immer nullen sendet wird wohl an der 
Interruptfunktion an sich liegen!?

mfg
TheMiB

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren