Да нет же, камрады, я не про то... Как подключать ТСОП я знаю, сам под него плату разводил и пару штук спаял, один на фото как раз виднеется. Я в сомнениях как подключить 4 ТСОПа, может можно (для экономии выводов) подключить все 4 ИК-диода на один выход с МК? И как 4 входа программно обрабатывать... Мне хотя бы алгоритм, а то что-то никак тяму дать не могу (( Пока программа выглядит вот так:
- Код: Выделить всё • Развернуть
$regfile = "m8def.dat"
$crystal = 1000000
'------------ Левый двигатель
Config Portb.2 = Output '1,2EN
Config Portd.5 = Output '1A
Config Portb.0 = Output '2A
'------------ Правый двигатель
Config Portb.1 = Output '3,4EN
Config Portd.7 = Output '3A
Config Portd.6 = Output '4A
'------------ ИК-бампер
Config Portd.1 = Output : Ir_led Alias Portd.1 'ИК-диод
Config Pind.0 = Input 'TSOP
'------------ Индикация
Config Portc.5 = Output : Led Alias Portc.5 'LED
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
'===========================================================================
Set Portd.0 'Подтяжка TSOPa
Dim I As Byte
Gosub Left_forward
Gosub Right_forward
Pwm1a = 180 : Pwm1b = 170 'Задаём скорость
Do
Gosub Tsop
If Pind.0 = 0 Then
Waitms 50
Gosub Tsop
If Pind.0 = 0 Then
Set Led
Gosub Left_backward
Gosub Right_backward
Wait 1
Gosub Left_stop
Pwm1a = 255 : Pwm1b = 255
Waitms 600 'Время поворота
Pwm1a = 180 : Pwm1b = 170
End If
End If
Reset Led
Gosub Left_forward
Gosub Right_forward
Loop
End
Left_forward:
Reset Portd.5
Set Portb.0
Return
Right_forward:
Reset Portd.7
Set Portd.6
Return
Left_backward:
Set Portd.5
Reset Portb.0
Return
Right_backward:
Set Portd.7
Reset Portd.6
Return
Left_stop:
Reset Portd.5
Reset Portb.0
Return
Tsop:
For I = 1 To 19
Set Ir_led
Waitus 18
Reset Ir_led
Waitus 18
Next
Return