Hallo
Ich habe jetzt meine Library upgedatet (Stand 7.8.07) und seltsamerweise erhalte ich jetzt einen Fehler beim Kompilieren. Ursache ist folgender Hinweis in der Datei RP6RobotBase.h:
Code:
/*****************************************************************************/
// IRCOMM pin:
// ### WARNING!
//
// #define IRCOMM (1 << PIND7) // Output
//
// ### DO NOT USE THIS PIN BY YOURSELF!
// ONLY LET THE INTERRUPT ROUTINE OF THE LIBRARY
// CONTROL THIS PIN!
// The IR LEDs must be controlled by a modulated
// signal with minimal 5kHz or higher
// modulation frequency!
// Nominal modulation frequency is 36kHz!
// YOU MAY DAMAGE THE IRCOMM IF YOU USE IT
// IN ANY OTHER WAY!
// Only use this macro to make sure IRCOMM is
// turned off:
#define IRCOMM_OFF() PORTD &= ~(1 << PIND7);
// NEVER try to control IRCOMM by yourself if you
// do not know what you are doing!
// Always use Timer based modulation control!
/*****************************************************************************/
Hintergrund ist der Widerstand R6 vor den IR-Dioden D3/D4. Der hat nur 10 Ohm und wird im Dauerbetrieb extrem heis. Möglicherweise kann der RP6 durch falsche Ansteuerung des IRCOMM-Pins dauerhaft Schaden nehmen.
Das wusste ich bei den ersten Versionen meiner Funktionen noch nicht und habe deshalb ziemlich unvorsichtig den IR-Pin manipuliert. Die aktuelle Version moduliert die LEDs mit den geforderten 36kHz und schaltet nach dem Senden die LEDs auch aus. Trotzdem muss ich leider darauf hinweisen, dass die Verwendung meiner Funktionen auf euer eigenes Risiko geschied!
Ich werde das Projekt jetzt erstmal auf Eis legen und abwarten, ob irgendwelche negativen Berichte über die Verwendung gepostet werden. Da ich selbst die Funktionen seit Tagen ohne Schaden am RP6 verwende, biete ich euch auf euer eigenes Risiko noch den Quellcode meiner letzten Version an.
Mit den im Quellcode beschriebenen Änderungen in RP6uart.h und RP6uart.c sind nun noch die Funktionen void IRuartON(void) und void IRuartOFF(void) dazugekommen. Damit schaltet man die Baudraten und die writeChar()-Umleitung ein oder aus. (Ausführliche Doku für Interessierte im Quellcode)
Gruß
mic
Lesezeichen