Problem jak w temacie. Proszę o pomoc.
$regfile = "m8def.dat"
$crystal = 1000000
'Konfiguracja przetwornika analog-cyfra (ADC)
Config Adc = Single , Prescaler = Auto
'Konfiguracja sterowania sprzętowym PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
'Konfiguracja portów
Config Portd = Output
Config Portb = Input
Config Portc = Input
Portd = &B00000000
Portb = &B00000000
Portc = &B000000
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinc.0 = Input
_Go Alias Pinb.0
Tsop Alias Pinb.1
Dalmierz Alias Pinb.2
_No Alias Pinc.0
'Opis portów
'Silnik lewy - Portb.1 (PWM1A)
'Silnik prawy - Portb.2 (PWM1B)
'Silnik lewy A - Portd.1
'Silnik lewy B - Portd.0
'Silnik prawy A - Portd.3
'Silnik prawy B - Portd.2
'Czujnik lewy - ADC5
'Czujnik środkowy - ADC4
'Czujnik prawy - ADC3
'Deklaracje zmiennych
Dim Czujnik_lewy As Word
Dim Czujnik_srodkowy As Word
Dim Czujnik_prawy As Word
Dim Zmienna As Byte
'Granica reagowania na linię
Const Granica = 360
Start Adc
'Każdowazowa konfiguracja czujników
Czujnik_lewy = Getadc(5)
Czujnik_srodkowy = Getadc(4)
Czujnik_prawy = Getadc(3)
'Blok instrukcji
Do
If _Go = 1 Then
Waitms 30
Gosub Program
End If
Loop
End
:
Program:
If Czujnik_srodkowy > Granica Then
Gosub Go
Elseif Czujnik_lewy > Granica Then
Gosub Lewt
Zmienna = 0
Elseif Czujnik_prawy > Granica Then
Gosub Righ
Zmienna = 1
Elseif Czujnik_srodkowy > Granica And Czujnik_lewy > Granica And Czujnik_prawy > Granica Then
Gosub Go
Elseif Czujnik_srodkowy > Granica And Czujnik_lewy > Granica Then
Zmienna = 0
Gosub Lewt
Elseif Czujnik_srodkowy > Granica And Czujnik_prawy > Granica Then
Zmienna = 1
Gosub Righ
Elseif Czujnik_lewy > Granica And Czujnik_prawy > Granica Then
Gosub No
Elseif Czujnik_srodkowy = 0 And Czujnik_lewy = 0 And Czujnik_prawy = 0 Then
If Zmienna = 0 Then
Gosub Lewt
Else
Gosub Righ
If _No = 1 Then
Return
Go:
Pwm1a = 250
Pwm1b = 250
Portd.0 = 0
Portd.1 = 1
Portd.2 = 0
Portd.3 = 1
Return
Lewt:
Pwm1a = 0 '
Pwm1b = 200
Portd.0 = 0
Portd.1 = 0
Portd.2 = 0
Portd.3 = 1
Return
Righ:
Pwm1a = 200
Pwm1b = 0
Portd.0 = 0
Portd.1 = 1
Portd.2 = 0
Portd.3 = 0
Return
No:
Pwm1a = 0
Pwm1b = 0
Portd.0 = 0
Portd.1 = 0
Portd.2 = 0
Portd.3 = 0
Return
Program jest skompilowany. Błąd wyświetla się przy włączaniu symulatora programu.
Dołączam program załączniku.
__________
Komentarz dodany przez: Sabre
Zrób edycję całego posta i napisz go od nowa, musiałeś użyć jakichś znaczników przeznaczonych dla moderatorów.