Hallo
Das ist ja fast genau das nicht funktionierende Programm aus diesem Thread:
https://www.roboternetz.de/community...ür-Pro-Bot-128
Ausgehend von diesen Kommentaren...
...setzt in Timer_T3PWM der erste Parameter die Periodendauer (51 für 36kHz) und der zweite Parameter steuert das Impuls/Pause_Verhältnis (sollte bei ersten Tests ca. 25 sein). Die Funktion des dritten Parameters (PS_8) kann ich nicht erkennen. Deine Parameter erscheinen also richtig.Code:'Timer_T3PWM(Par1,Par2,PS); 'Period = Par1*PS/FOSC (51*8/14,7456MHz=27,66 µs) = 36Khz 'Pulse = Par2*PS/FOSC (25*8/14,7456MHz=13,56 µs) On Time 'Timer_T3PWM(Word period,Word PW0,Byte PS) '36Khz 'Mit Par1, Par2 kann die Entfernung eingestellt werden
Nun weiß ich nicht, was in PRO_BOT128_INIT() alles erledigt wird, aber in deiner Programmvariante deutet dies...
...darauf hin, dass die Datenrichtung der verwendeten Portpins "von Hand" definiert werden müssen. Hier fehlt allerdings das weiter oben schon erwähnte Setzen der Datenrichtung für den OC3A als Ausgang:Code:Port_DataDirBit(IR_left,PORT_OUT) Port_DataDirBit(IR_right,PORT_OUT) Port_DataDirBit(TSOP,PORT_IN) Timer_T3PWM(51,25,PS_8)
Port_DataDirBit(PWM_IR,PORT_OUT)
Ohne diesen Befehl werden die 36kHz über den internen PullUp ausgegeben. Das würde deine extrem schwache Leistung deiner IR-LEDs erklären.
Gruß
mic







Zitieren

Lesezeichen