Hallo Leute, ich schlage mich seit einiger Zeit mit dem Empfang von Daten via SCI (serielle Schnittstelle) in einem H8S 2368 herum. Bein Problem sieht wie folgt aus: Initialisierung der SCI2 klappt: + 8 Bit Datenwortlänge + gerade Parität + 1 Stoppbit + asynchron + 1 Mbit Übertragungsgeschwindigkeit + Empfangsinterrupt aktiviert + Empfang eingeschaltet + SCI2 aus dem Stop_Mode geholt + Alle Interrupts aktiviert In der Interrupt-Service-Routine mache ich: + Auslesen des Empfangsregisters (RDR) und zuweisung an Port1 (mit Treibern für LEDs bestückt) + Manuelles Rücksetzen des Empfangsflag (RDRF) auf Null Beim Test stelle ich nun aber fest, dass nur das erste Byte empfangen wird. Weitere Bytes werden nicht empfangen. Die Errorflags (Parity, Framing) überprüfe ich, die sind nicht gesetzt, somit nehme ich an, dass keie Fehler auftreten. Hat jemand eine Ahnung, warum mein Empfangsinterrup nur einmal aufgerufen wird?? Habe ich etwas übersehen?? Muss ich ein Flag setzen, dass den µC für den erneuten Empfang bereit macht?? Grüße Christian
Hallo also ich habe den Fehler jetzt schon mal eingegrenzt: Es liegt daran, dass ich das Empfangsflag (RDRF) nicht löschen kann. Das '0'-hineinschreiben zeigt keine Wirkung... und somit wird natürlich nicht noch einmal der Interrupt ausgelöst, der Empfangsbuffer nicht ausgelesen und somit erhalte ich danach einen Überlauf...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.