Лекарства нет, у меня он лицензионный
на мыло слать смысла нет, тут выкладываю.
СЫРЕЦ!!! В ЧАСНОСТЯХ РАБОТАЕТ, В ЦЕЛОМ НЕТ!!!
ИСКЛЮЧИТЕЛЬНО В ОЗНАКОМИТЕЛЬНЫХ ЦЕЛЯХ!!!
$prog &HFF , &HA4 , &HD1 , &H00 ' generated. Take care that the chip supports all fuse bytes.
$regfile = "m8DEF.dat"
$baud = 1200
$crystal = 8000000
Config Pind.4 = Output : Ir_led Alias Portd.4
Config Pind.5 = Output : Led Alias Portd.5 : Led = 1
Config Pind.2 = Input : Tsop Alias Pind.2
'Config Pinc.5 = Input
Dim Temp As Byte
Dim Temp1 As Byte
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinb.1 = Output ': Config Pinb.6 = Output ': Pwml Alias Portb.1 : Pwml = 0
Config Pinb.2 = Output ': Config Pinb.7 = Output ': Pwmr Alias Portb.2 : Pwmr = 0
Config Pinc.0 = Output : РеверсЛ Alias Portc.0
Config Pinc.1 = Output : РеверсП Alias Portc.1
Config Adc = Single , Prescaler = 2 , Reference = Internal
Dim Акк_мотора As Word
Dim Акк_база As Word
Dim Л_глаз As Word
Dim П_глаз As Word
Dim Мах_глаз As Word
Dim Препятствие As Word
Dim Сч_Препятствие As Byte : Препятствие = 0
Dim Направление As Byte
Dim ШИМ As Byte : ШИМ = 100
Dim Сч_круг As Byte
Wait 1
Print "start"
'---------------------------НАЧАЛО----------------------------
Do
Gosub Покругу
Print Мах_глаз
Gosub Свет
Gosub Откл
Loop
'---------------------------КОНЕЦ-----------------------------
Свет:
While Л_глаз > Мах_глаз
Gosub АЦП
Print Л_глаз
Gosub Влево
Wend
Return
'-------------------------------------------------------------
АЦП:
Start Adc
Л_глаз = Getadc(6)
П_глаз = Getadc(7)
Stop Adc
Return
'-------------------------------------------------------------
Покругу:
Мах_глаз = 1023
Направление = Rnd(2) + 1
Temp1 = Rnd(25) + 25
For Temp = 1 To Temp1
If Направление = 1 Then Gosub Влево
If Направление = 2 Then Gosub Вправо
Gosub АЦП
If Л_глаз < Мах_глаз Then Мах_глаз = Л_глаз
If П_глаз < Мах_глаз Then Мах_глаз = П_глаз
' Print Л_глаз ; "---" ; П_глаз
' Print Мах_глаз
Next
Gosub Стоп
Return
'-------------------------------------------------------------
Локатор:
For Temp = 1 To 200
Ir_led = 1
Waitus 14
Ir_led = 0
Waitus 13
Next
If Tsop = 0 Then
Препятствие = 400
If Направление = 0 Then
Направление = Rnd(2) + 1
End If
End If
Waitus 100
Return
'-------------------------------------------------------------
Влево:
РеверсЛ = 1
РеверсП = 0
Pwm1a = ШИМ + 20
Pwm1b = ШИМ
Return
'-------------------------------------------------------------
Вправо:
РеверсЛ = 0
РеверсП = 1
Pwm1a = ШИМ + 20
Pwm1b = ШИМ
Return
'-------------------------------------------------------------
Вперед:
РеверсЛ = 0
РеверсП = 0
Pwm1a = ШИМ + 20
Pwm1b = ШИМ
Return
Стоп:
Pwm1a = 0
Pwm1b = 0
Return
Откл:
Do
Loop
Return
'Do
' Gosub Локатор
' If Препятствие = 0 Then
' Направление = 0
' Led = 1
' Gosub Вперед
' Else
' Led = 0
' If Направление = 1 Then Gosub Влево
' If Направление = 2 Then Gosub Вправо
' Decr Препятствие
' End If
'Loop