Wojcik98 Napisano Czerwiec 9, 2011 Udostępnij Napisano Czerwiec 9, 2011 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. Cytuj Link do komentarza Share on other sites More sharing options...
Sabre Czerwiec 9, 2011 Udostępnij Czerwiec 9, 2011 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. Cytuj Link do komentarza Share on other sites More sharing options...
nanab Czerwiec 9, 2011 Udostępnij Czerwiec 9, 2011 Masz dwa If i jedno End If. Dodaj End If w odpowiednim miejscu. Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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!