-
-
UART Problem mit MEGA32
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
-
Erfahrener Benutzer
Robotik Einstein
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
-
Hallo,
und wie synchronisiere ich das Ganze?
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen