'Abstandsmesser mit dem ACS-System

'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

'ACS (Anit-Collisions-System)
#define PWM_IR 35
#define IR_left 27
#define IR_right 29
#define TSOP 26

'Rangefinder Parameter
#define TSOP_sensity 6
#define TSOP_increase 2

Dim range_left As Byte
Dim loop_cnt As Integer


Sub main()

PRO_BOT128_INIT()

'IR-LEDs aus!
Port_WriteBit(IR_left,PORT_OFF)
Port_WriteBit(IR_right,PORT_OFF)

DELAY_MS(100)


'Abszandsmessung mit den linken IR-Dioden!!!
For loop_cnt = 1 To 10

'PWM neu stellen von ca. 28 bis 36Khz (51 = 36Khz)
Timer_T3PWM(62-loop_cnt,TSOP_sensity+(loop_cnt/TSOP_increase),PS_

'linke IR-LED ein
Port_WriteBit(IR_left,PORT_ON)
Port_WriteBit(IR_right,PORT_OFF)

DELAY_MS(1)

range_left = Port_ReadBit(TSOP)

DELAY_MS(1)

Port_WriteBit(IR_right,PORT_OFF) 'aus
Port_WriteBit(IR_left,PORT_OFF)

DELAY_MS(1)

'Ausgabe der Entfernung
If range_left = 0 Then
Msg_WriteWord(loop_cnt)
Msg_WriteChar(13)
Turn_Left()
Exit
End If

Next

'objekt zuweit entfernt = 255
If range_left = 1 Then
Msg_WriteWord(255)
Msg_WriteChar(13)
End If

End Sub

Sub Turn_Left() 'Turn left
Timer_T1PWA(30)
Timer_T1PWB(180)
AbsDelay(150)
End Sub


so sieht mein programm bislang aus.