PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART Problem mit MEGA32



DarkFire
16.03.2006, 21:23
Hallo!

Ich benutze einen ATMEL Mega32 und P. Fleury's UART-Bibliothek.
Nun habe ist mir ein kleines Problem aufgetreten.
Ich benötige neben dem UART noch PWM und den ADC.
Doch jedes mal, wenn ich einen Messwert erfassen will, und dieses dann über die serielle Schnittstelle übetragen will, streikt mir diese, bzw. das ganze Programm bleibt hängen.

Meine Vermutung ist, das die ganze Sache was mit den Interrupts zu tun hat. Daher meine Frage, was ich dabei zu beachten habe?


Chris

linux_80
16.03.2006, 23:42
Hallo,
auf jeden Fall nicht während die eine ISR gerade ausgeführt wird eine Aktion starten, die auf das Ergebnis eines anderen IRQs wartet, denn dann hängt die Sache !
Das kann passieren, wenn der ADC mittels IRQ bedient wird, dH. wenn die Wandlung zuende ist, in dessen ISR das ergebnis per UART wegzusenden, wenn der UART auch per IRQ bedient wird. Denn ein ISR sperrt idR. alle anderen auftretenden IRQs solange er sich in der ISR befindet.

In so einem Fall hilfts über eine globale Variable zu gehen, und über das Hauptprogramm die sachen zu synchronisieren.

PS:
ISR - Interrupt Service Routine
IRQ - Interrupt Request

DarkFire
18.03.2006, 13:24
Hallo,

und wie synchronisiere ich das Ganze?