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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.