Forum: Mikrocontroller und Digitale Elektronik Mega 32, CodeVisionAVR und UART


von Bernhard Koopmeiners (Gast)


Lesenswert?

Hallo AVR-User,

ich nutze einen ATMega32 und schreibe die Software in C mit 
CodevisionAVR 1.23.6b. Ich habe mir mit dem CodeWizard ein Rumpfprogramm 
erzeugt. Dort wird nur die serielle Schnittstelle mit dem Txd-Interrupt 
( 8 Byte Buffer )konfiguriert. Direkt vor der while in der main habe ich 
nur printf("Start"); eingefügt. In der Standard-Endlosschleife gebe ca. 
einmal pro Sekunde mit printf("Hallo"); einen Text aus.
Dabei macht der Controller in unregelmäßigen Abstände einen Restart.
Kennt jemand das Problem?

Bernhard

von Michael (Gast)


Lesenswert?

Beim Tx-Interrupt gibt es eine kleine Falle: der reguläre Int-Vector ist 
UDRE_Int, der bei leerem Puffer angesprungen wird. Der TXC_Int wird 
angesprungen, wenn der Transmitter Leer ist. Wenn Du den falschen Vector 
nimmst und dort 0xffff steht, könnte u.U. ein Reset des Prozessors die 
Folge sein - abhängig von irgendwelchen Registerinhalten. Vielleicht ist 
es so etwas.

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.