блин, не работают тсопы. Может дохлые.
код ниже (известный в общем то)
обы тсопа имеют питание около 4 вольт и примерно столько же на сигнальной ноге всегда.
один тсоп TSOP1736, другой TSOP1836SS3V
оксилогафа нет. Частоту менял. то, что мигают светодиоды - проверил (промежуток между вкл\выкл увеличивал)
делал D3 выходом и "моргал" им - значит работает. Что-то туплю, наверное.
- Код: Выделить всё • Развернуть
- $regfile = "m32def.dat"                                     ' файл спецификации Меги32
 $crystal = 8000000                                          ' указываем на какой частоте будем работать
 $baud = 19200
 
 '----------------------------------------------------------------------------
 Config Pinc.2 = Output : Drl Alias Portc.2                  'ногу сконфигурировали как выход и обозвали Drl
 Config Pinc.3 = Output : Drr Alias Portc.3                  'ногу сконфигурировали как выход и обозвали Drr
 Config Pind.2 = Input : Backtsop Alias Portd.2
 Config Pind.3 = Input : Tsop Alias Portd.3
 
 Config Pinb.0 = Output : Radarbacklight Alias Portb.0       'ногу сконфигурировали как выход и обозвали RadarLeftLight
 Config Pinb.1 = Output : Radarrightlight Alias Portb.1      'ногу сконфигурировали как выход и обозвали RadarLeftLight
 Config Pinb.3 = Output : Radarleftlight Alias Portb.3       'ногу сконфигурировали как выход и обозвали RadarLeftLight
 Config Pinc.5 = Output : Lightrightgreen Alias Portc.5
 Config Pinc.7 = Output : Lightleftgreen Alias Portc.7
 
 '----------------------------------------------------------------------------
 
 Radarbacklight = 1
 Radarrightlight = 1
 Radarleftlight = 1
 Lightrightgreen = 0
 Lightleftgreen = 0
 
 Do
 Gosub Checkirradar
 
 If Tsop = 1 Or Backtsop = 1 Then
 Lightleftgreen = 0
 Else
 Lightleftgreen = 1
 End If
 Waitms 500
 Loop
 Return
 
 Checkirradar:
 Dim Temp As Byte
 For Temp = 1 To 14
 Radarleftlight = 0
 Radarrightlight = 0
 Waitus 14
 'Waitms 200
 Radarleftlight = 1
 Radarrightlight = 1
 Waitus 14
 'Waitms 200
 Next
 Waitus 100
 Return