Skocz do zawartości

Problem z bascom avr - oczekuje if..then, którego ma nie być


Wojcik98

Pomocna odpowiedź

Witam!

Właśnie sobie pisałem program do linefollowera (poprzedni miał za dużo ifów, ale doznałem olśnienia, jak to zrobić 😃 ), gdy nagle wyskoczył błąd, bo sobie program zażyczył ifa:

Kod, który do tej pory napisałem:

$regfile = "m8def.dat"
$crystal = 16000000

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

Config Adc = Single , Prescaler = Auto

Config Portc = Input
Config Portd = Output
Config Portc = Output

Dim Ostatni As Byte
Dim Czujnik_a As Single
Dim Czujnik_b As Single
Dim Czujnik_c As Single
Dim Czujnik_d As Single
Dim Czujnik_e As Single
Dim Switch As Single
Dim W As Word
Dim Pwm_l As Byte
Dim Pwm_p As Byte

Const Granica = 500

Silnik_lp Alias Portd.0
Silnik_lt Alias Portd.1
Silnik_pp Alias Portd.2
Silnik_pt Alias Portd.3

Do
If Switch > Granica Then
Wait 3
Do
Gosub Wczytaj_stany_przetwornikow
If Switch > Granica Then
Silnik_lt = 1
End If

Loop Until Switch > Granica
Wait 2
Loop
End

Wczytaj_stany_przetwornikow:
Start Adc
W = Getadc(0)
W = Getadc(0)
Stop Adc
Switch = W
Start Adc
W = Getadc(1)
W = Getadc(1)
Stop Adc
Czujnik_a = W
Start Adc
W = Getadc(2)
W = Getadc(2)
Stop Adc
Czujnik_b = W
Start Adc
W = Getadc(3)
W = Getadc(3)
Stop Adc
Czujnik_c = W
Start Adc
W = Getadc(4)
W = Getadc(4)
Stop Adc
Czujnik_d = W
Start Adc
W = Getadc(5)
W = Getadc(5)
Stop Adc
Czujnik_e = W
Return

Pytanie:

Co źle zrobiłem i co należy poprawić? (Chyba, że program się przyzwyczaił, że piszę dużo ifów i coś mu nie pasowało 😅 )

Z góry dziękuję

P.S.

Oczywiście próbowałem dać końcówkę z programu do w pełni programowalnego linefollowera

[ Dodano: 09-06-2011, 20:30 ]

Problem zażegnany. Okazało się, że nie wstawiłem jednego endifa. Zwróciłem na to uwagę dzięki koledze, który już usunął swego posta. Do Galla Anonima: Dzięki wielkie! Troszkę śmiecę, ale cóż, chyba nigdy bym na to nie wpadł. Temat do zamknięcia.

Link do komentarza
Share on other sites

Wojcik98, za gapiostwo się płaci, linijki 30-32 są chyba z poprzedniej wersji programu. Następnym razem sam poszukaj bo aż wstyd, dałeś podwójne Do, i Ifa, który jest niezamknięty, więc Bascom krzyczy na końcu.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.