Forum: Mikrocontroller und Digitale Elektronik ATMega8 USARTund Timer problem


von Leo (Gast)


Lesenswert?

Hallo Fachleute!

In diesem Fall handelt es sich um einen Mega8, Codevision Compiler und
Programmiersprache C.
Wenn ich über TxD ein String verschicke (9600 baud) bleiben die Timer
stehen, die aber gleichzeitig für andere Zwecke benutzt werden.
Wobei bei dem letzten Byte des Strings die Timer wieder aktiv sind???

Controllregister B ist so gesetzt:
USCRB = 0xD8;

Meine Vermutung ist, dass wenn ich etwas in UDR reingeschrieben habe,
dann taucht das Problem auf.
Was kann das sein, wie kann ich das Problem lösen?

Bin für jeden Tipp dankbar.....

von ka-long (Gast)


Lesenswert?

Hi,

Du meinst, wenn Du etwas über die serielle Schnittstelle verschickst,
dann bleibe´n Deine Timer stehen ?!?

Oder wie soll man das verstehen ?


Zumindest wenn ich es richtig aufgefaßt habe: Nein, die Timer laufen
normal weiter.

Programmcode wär hilfreich....benutzt Du Interrupts ?

Das senden mit 9600 baud kann lange dauern, vielleicht laufen Deine
Timer ja ein paar mal über ?

Gruß ka-long

von Leo (Gast)


Lesenswert?

@ka-long

ja, die timer bleiben stehen und laufen nicht über. Ich arbeite mit
Timer Interrupts und Rx / Tx Interrupts.
Das problem ist eben das die Timer nicht überlaufen...

Leo

von gerd (Gast)


Lesenswert?

TX-Interrupts sind gräßlich, wenn es nix mehr zum Senden gibt. Dann
interrupten die ständig, sofern man nicht explizit den Tx-Int
zurücksetzt.

mfg
gerd

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.