Hallo zusammen Ich benutze ein IR Modul von Vishay um eine Verbindung zwischen dem uC (PIC24FJ128) und einem PDA von Motorola zu erstellen. Über den PDA kann ich diverse Variablen auf dem uC verändern. Vorher habe ich den Typ TFDU4300 von Vishay eingesetzt, alles ohne Probleme. Jetzt ist dieser Typ nicht mehr verfügbar und ich musste auf den Ersatztyp von Vishay TFDU4301 ausweichen. Bei diesem Typ funktioniert aber meine Kommunikation nicht mehr richtig, da laut Vishay nach jedem Senden der Receive Buffer gelöscht werden muss, da beim neuen Bauteil dieser nicht automatisch gelöscht wird. Ich habe das OBEX Protokoll angehängt, das ich benutze, weiss aber nicht wo ich diesen ReceiveBuffer löschen muss (nach jedem Senden...) Kann mir jemand bitte helfen? Das C-File ist im Anhang. Vielen Dank. Gruss Domi
Hallo Domi, Dein Problem ist das der TFDU4301 auch empfängt was er sendet "mirrors the transmit signal.", Du must also wenn du etwas gesendet hast immer den Empfangspuffer löschen und vorallem den Receive-Interrupt abschalten bevor Du sendest. //Echo verhindern _U1RXIE = 0; //Receive-Interrupt ausschalten IrgendwasSenden(); while (U1STAbits.URXDA==1) k = U1RXREG; //lesen bis das fifo leer ist. if (U1STAbits.OERR==1) U1STAbits.OERR=0; //Overflow löschen _U1RXIF = 0; //Receive-Interrupt clearen _U1RXIE = 1; //Receive-Interrupt einschalten Grüße Dirk
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.