Witam, mam 15 lat i mam na imię Mateusz. Napisałem program do linefollower i chciałem zastosować PWM i ADC ale nie wiem czy mi to wyszło. Gdy wgrywam program, włączam robota i naciskam start to nic czujniki nic nie wykrywają a silniki cały czas się kręcą do przodu. Pomoglibyście mi bym był bardzo wdzięczny.

$regfile = "m88def.dat"
$crystal = 16000000
'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 Portb = Output
Config Portd = &B01111111
Config Portc = Input
Portd.7 = 1
Przycisk Alias Pind.7
Led Alias Portd.6
Enable_a Alias Portb.1
Enable_b Alias Portb.2
Silnik_prawy_a Alias Portd.3
Silnik_prawy_b Alias Portd.2
Silnik_lewy_a Alias Portd.1
Silnik_lewy_b Alias Portd.0
'Opis portów
'Enable_a - Silnik lewy - Portb.1 (PWM1A)
'Enable_b - Silnik prawy - portb.2 (PWM1B)
'Input1 - Silnik prawy A - Portd.3
'Input2 - Silnik prawy B - Portd.2
'Input4 - Silnik lewy A - Portd.0
'Input3 - Silnik lewy B - Portd.1
'Dioda - Portd.6
'Czujnik lewy skrajny - ADC2
'Czujnik lewy - ADC3
'Czujnik środkowy - ADC4
'Czujnik prawy - ADC5
'Czujnik prawy skrajny - ADC6
'Granica reagowania na linię - należy dobrać doświadczalnie
Const Granica = 500
'Deklaracje zmiennych
Dim Czujnik_skrajny_lewy As Single
Dim Czujnik_lewy As Single
Dim Czujnik_srodkowy As Single
Dim Czujnik_prawy As Single
Dim Czujnik_skrajny_prawy As Single
Dim W As Word
Set Led
'Blok instrukcji
Set Silnik_lewy_a
Reset Silnik_lewy_b
Set Silnik_prawy_a
Reset Silnik_prawy_b
Do
Bitwait Pind.7 , Reset 'czekaj aż 7 linia portu D będzie w stanie 0.
Gosub Wczytaj_stany_przetwornikow
If Czujnik_srodkowy > Granica Then
'Silnik lewy - maksymalna prędkość
Pwm1a = 250
'Silnik prawy - maksymalna prędkość
Pwm1b = 250
Elseif Czujnik_lewy > Granica Then
Pwm1a = 230
Pwm1b = 100
Elseif Czujnik_skrajny_lewy > Granica Then
Pwm1a = 230
Pwm1b = 230
Elseif Czujnik_prawy > Granica Then
Pwm1a = 100
Pwm1b = 230
Elseif Czujnik_skrajny_prawy > Granica Then
Pwm1a = 230
Pwm1b = 230
End If
Loop
End
Wczytaj_stany_przetwornikow:
Start Adc
W = Getadc(6)
W = Getadc(6)
Stop Adc
Czujnik_prawy = W
Start Adc
W = Getadc(5)
W = Getadc(5)
Stop Adc
Czujnik_skrajny_lewy = W
Start Adc
W = Getadc(2)
W = Getadc(2)
Stop Adc
Czujnik_lewy = W
W = Getadc(3)
W = Getadc(3)
Stop Adc
Czujnik_srodkowy = W
W = Getadc(4)
W = Getadc(4)
Stop Adc
Czujnik_skrajny_prawy = W
Return
Moderated By Mirek Z.:A to? http://www.dioda.com.pl/forum/topics49/bascom-obsluga-adc-z-uzyciem-megi16-i-cny70-vt3575.htm