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...
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
...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.
Nun weiß ich nicht, was in PRO_BOT128_INIT() alles erledigt wird, aber in deiner Programmvariante deutet dies...
Code:
Port_DataDirBit(IR_left,PORT_OUT)
Port_DataDirBit(IR_right,PORT_OUT)
Port_DataDirBit(TSOP,PORT_IN)
Timer_T3PWM(51,25,PS_8)
...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:
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
Lesezeichen