kubahel Napisano Grudzień 18, 2011 Udostępnij Napisano Grudzień 18, 2011 Witam wszystkich, mam problem, napisałem z "pomocą" internetu część kodu do mojego linefollowera, w którym chcę wykorzystać cos podobnego do członu P, mam jednak problem w obliczeniach, a raczej bascom ma dziwne problemy z moim zapisem 😉. Wiem, że ładny ten kod nie jest ale wcześniej pisałem z użyciem if co przy większej ilości czujników jest ciężkie do opisania 😉 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 'xxxxxxxxxxxxxxx LINE FOLLOWER xxxxxxxxxxxxxxxxxx' $regfile = "m8def.dat" $crystal = 8000000 $baud = 19200 'konfiguracja portów Config Portc = Input 'czujniki Config Portd.2 = Input Config Portb.3 = Input Config Portd.4 = Input 'start Config Portb.1 = Output 'PWM1a Config Portb.2 = Output 'PWM1b Config Portb.0 = Output 'input1 silnik lewy A Config Portd.7 = Output 'input2 silnik lewy B Config Portd.6 = Output 'input3 silnik prawy A Config Portd.5 = Output 'input4 silnik prawy B Set Portc Set Portd.2 Set Portd.4 Set Portb.3 'Konfiguracja sterowania sprzętowym PWM Config Timer1 = Pwm , Pwm = 8 , Prescale = 256 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Start Timer1 Pwm1a = 0 Pwm1b = 0 Silnik_lewy_a Alias Portb.0 Silnik_lewy_b Alias Portd.7 Silnik_prawy_b Alias Portd.6 Silnik_prawy_a Alias Portd.5 Dioda Alias Portb.5 Startuj Alias Portd.4 Dim Czuj3p As Byte Dim Czuj2p As Byte Dim Czuj1p As Byte Dim Czuj1l As Integer Dim Czuj2l As Integer Dim Czuj3l As Integer Dim Aktualna_poz As Single Dim Ile As Byte Dim Lewe As Single Dim Prawe As Byte Dim suma As Integer Set Silnik_lewy_b Reset Silnik_lewy_a Set Silnik_prawy_a Reset Silnik_prawy_b Set Startuj Set Dioda Do Ile = 1 Aktualna_poz = 0 'odczyt If Pinc.1 = 0 Then Czuj3p = 3 Ile = Ile + 1 Else Czuj3p = 0 End If If Pinc.2 = 0 Then Czuj2p = 2 Ile = Ile + 1 Else Czuj2p = 0 End If If Pinc.3 = 0 Then Czuj1p = 1 Ile = Ile + 1 Else Czuj1p = 0 End If If Pinc.4 = 0 Then Czuj1l = -1 Ile = Ile + 1 Else Czuj1l = 0 End If If Pinc.5 = 0 Then Czuj2l = -2 Ile = Ile + 1 Else Czuj2l = 0 End If If Pind.2 = 0 Then Czuj3l = -3 Ile = Ile + 1 Else Czuj3l = 0 End If 'obliczenia Lewe = Czuj3l + Czuj2l + Czuj1l Prawe = Czuj1p + Czuj2p + Czuj3p suma = Lewe + Prawe Aktualna_poz = suma / Ile Loop End a tu są błędy: Error : 35 Line : 129 3 parameters expected , in File : C:\Documents and... Error : 35 Line : 130 3 parameters expected , in File : C:\Documents and.... Error : 124 Line : 130 LOOP expected , in File : C:\Documents and.... line 129 to: Lewe = Czuj3l + Czuj2l + Czuj1l pomóżcie jakimiś wskazówkami, rozwiązaniami co robię źle i skąd takie błędy, gdy rozwiąże ten błąd dopiero postaram się dopisać resztę 😉 Kuba Cytuj Link do komentarza Share on other sites More sharing options...
piotreks-89 Grudzień 18, 2011 Udostępnij Grudzień 18, 2011 Radze zerknąć do polskiego helpa Bascoma 😉 Wszystkich błędów nie rozwiąże, ale będzie prowadził do celu. Najlepiej samemu dojść do rozwiązania, bo tak najwięcej się nauczysz. Cytuj Link do komentarza Share on other sites More sharing options...
kubahel Grudzień 18, 2011 Autor tematu Udostępnij Grudzień 18, 2011 Do polskiego helpa cały czas patrzę 😉 nie rozumiem tylko dlaczego działanie potrzebuje jeszcze 3 argumentów? 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Robomaniak Grudzień 18, 2011 Udostępnij Grudzień 18, 2011 Wręcz odwrotne masz jeden za dużo Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
kubahel Grudzień 18, 2011 Autor tematu Udostępnij Grudzień 18, 2011 dzięki za podpowiedzi 😉 Rozpisałem każdą z tych linijek na działania na dwóch liczbach i błędów nie ma 😉 Lewe = Czuj3l + Czuj2l Prawe = Czuj3p + Czuj2p Lewe = Lewe + Czuj1l Prawe = Prawe + Czuj1p tylko kod trochę dłuższy, jak dopiszę reszte programu to dam znać czy działa, a raczej będe szukał kolejnych podpowiedzi 😋 Cytuj Link do komentarza Share on other sites More sharing options...
BlackJack Grudzień 18, 2011 Udostępnij Grudzień 18, 2011 Szkoda że w kodzie programu nie masz też nr. lini, byłoby łatwiej. I wydaje mi się że BASCOM AVR nie dopuszcza takich obliczeń ? Lewe = Czuj3l + Czuj2l + Czuj1l Prawe = Czuj1p + Czuj2p + Czuj3p Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Grudzień 18, 2011 Udostępnij Grudzień 18, 2011 Tak, dokładnie. Bascom w jednej linii kodu pozwala tylko na jedną operację matematyczną (jest to jedna z tych "wad" Bascoma, która dotyka z czasem wszystkich) 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
kubahel Grudzień 18, 2011 Autor tematu Udostępnij Grudzień 18, 2011 dzięki za pomoc, jak widać mnie też ona dotknęła ale jest dobrze błędów się pozbyłem, a dalsza część kodu do przeliczania wartości czujników na PWM też już zaczyna działać jak należy 😅 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!