Skocz do zawartości

Problem z programem do linefollowera.


w1941srobot

Pomocna odpowiedź

Witam napisałem sobie program do linnefollowera: ma to działać tak gdy na pilocie wcisnę 1 uruchamia się podprogram odpowiedzialny za funkcje linefollowera, gdy nacisnę 2 uruchamia się podprogram odpowiedzialny za sterowanie zdalne na pilot IR. Niestety n ie mogę skompilować tego programu cały czas mam takie oto błędy 🙁:

Error: 7 Line: 0 IF THEN expected[ 149] ,in File:

Error: 123 Line: 0 END IF expected ,in File:

A tu kod programu:

$regfile = "m8def.dat"                                      'zadeklarowanie użytego procesora
$lib "mcsbyte.lbx"
$crystal = 1000000
'$noramclear

Config Portc.5 = Output                                     ' silnik L_p
Config Portc.4 = Output                                     ' silnik P_p
Config Portc.3 = Output
Config Portc.2 = Input                                      ' CZUJNIK L
Config Portc.1 = Input                                      ' CZUJNIK P
Config Portd.0 = Output
Config Portd.1 = Output

Config Rc5 = Pind.3                                         ' Przerwanie INTO1
Config Pind.3 = Input                                       'PIND OD RC5
Enable Interrupts                                           'Uruchomienie przerwan

Portc = &B00000000
Portc.3 = 1                                                 'DIODA

Declare Sub Polinii                                         'zadeklarowanie podprogramu o nazwie polinii
Declare Sub Napilota
declare sub prosto
declare sub lewo
declare sub prawo
declare sub tyl
declare sub zatrzym

'Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down

Czujnik_p Alias Pinc.2
Czujnik_l Alias Pinc.1
Motor_pp Alias Portc.5
Motor_lp Alias Portc.4
Motor_pt Alias Portd.0
Motor_lt Alias Portd.1

Dim Address As Byte                                         ' zmienna Adress z pilota
Dim Tryb As Byte                                            ' komenda wyboru trybu pracy zapisana w byte
Dim Kierunek As Byte                                        'zmienna do przechowywania komend od sterowania

     ' +++++++++++ POBRANIE DANYCH Z PILOTA I SKOK DO ODPOWIEDNIEGO PODPROGRAMU ++++++++++++

  Do
  Getrc5(address , Tryb)                                   ' odczytanie trybu z pilota
  Tryb = Tryb And &B01111111                               ' operacja odwrucenia bitu

  If Tryb = 1 Then
  Polinii                                                  'jesli tryb = 1 skocz do polinii

  If Tryb = 2 Then
  Napilota                                                 'jesli tryb = 2 skocz do napilota

  End If
  Loop
  End


 '++++++++++++++++ PODPROGRAM POLINII ++++++++++++++++++

Sub Polinii

Do
If Czujnik_p = 1 And Czujnik_l = 1 Then
Gosub prosto

Elseif Czujnik_p = 1 And Czujnik_l = 0 Then
Gosub prawo

Elseif Czujnik_p = 0 And Czujnik_l = 1 Then
Gosub lewo

End If
Loop
End Sub

  '++++++++++++++++ PODPROGRAM POLINII ++++++++++++++++++

Sub Napilota

Do
  Kierunek = 0
  Getrc5(address , Kierunek)                               ' odczytanie kierunku z pilota
  Kierunek = Kierunek And &B01111111                       ' operacja odwrucenia bitu

  If Kierunek = 0 Then
  Gosub zatrzym

  Elseif Kierunek = 2 Then
  Gosub prosto

  Elseif Kierunek = 4 Then
  Gosub lewo

  Elseif Kierunek = 6 Then
  Gosub prawo

  Elseif Kierunek = 8 Then
  Gosub tyl
  End If
  Loop
End Sub

  '+++++++++++++++ KIERUNKI JAZDY ++++++++++++++++++++++++

zatrzym:
Motor_pt = 0
Motor_lp = 0
Motor_pp = 0
Motor_lt = 0
Motor_pp = 0
Motor_lp = 0
return

prosto:
Motor_pt = 0
Motor_lp = 0
Motor_pp = 0
Motor_lt = 0
Motor_pp = 1
Motor_lp = 1
return

lewo:
Motor_pp = 0
Motor_lp = 0
Motor_pt = 0
Motor_lp = 0
Motor_pp = 1
Motor_lt = 1
return

prawo:
Motor_pp = 0
Motor_lp = 0
Motor_pp = 0
Motor_lt = 0
Motor_pt = 1
Motor_lp = 1
return

tyl:
Motor_pp = 0
Motor_lp = 0
Motor_pp = 0
Motor_lt = 1
Motor_pt = 1
Motor_lp = 0
return
Link do komentarza
Share on other sites

jak wyświetlają ci się błędy (na dole okna) to na nie kliknij to podświetlą się wadliwe linijki kodu. Te zaś skopiuj i umieść tutaj (nie chcę mi się całego kodu sprawdzać)...

Link do komentarza
Share on other sites

jak wyświetlają ci się błędy (na dole okna) to na nie kliknij to podświetlą się wadliwe linijki kodu. Te zaś skopiuj i umieść tutaj (nie chcę mi się całego kodu sprawdzać)...

Kiedy tam pisze line: 0 i jak kilkam nigdzie nie przenosi. HELP

Link do komentarza
Share on other sites

 ' +++++++++++ POBRANIE DANYCH Z PILOTA I SKOK DO ODPOWIEDNIEGO PODPROGRAMU ++++++++++++ 

  Do 
  Getrc5(address , Tryb)                                   ' odczytanie trybu z pilota 
  Tryb = Tryb And &B01111111                               ' operacja odwrucenia bitu 

  If Tryb = 1 Then 
  Polinii                                                  'jesli tryb = 1 skocz do polinii 

  If Tryb = 2 Then 
  Napilota                                                 'jesli tryb = 2 skocz do napilota 

  End If 
  Loop 
  End 

Brakuje else 😉

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

ale mam pytanie o ile się nie mylę w innych językach programowania można było dawać więcej niż 1 IF np w C++.

I można nadal 😉 .

np.

if(a > b)
{
  if(b > c)
  {
     if(c == 30)
     {
     }
     else z = 1;
  }
  else z = 2;
}
else z = 3;
Link do komentarza
Share on other sites

ale mam pytanie o ile się nie mylę w innych językach programowania można było dawać więcej niż 1 IF np w C++.

I można nadal 😉 .

np.

if(a > b)
{
  if(b > c)
  {
     if(c == 30)
     {
     }
     else z = 1;
  }
  else z = 2;
}
else z = 3;

A CZY TO NIE JEST CZASEM INNY JĘZYK NIŻ BASCOM, to jak to jest w bascomie.

__________

Komentarz dodany przez: Treker

I po co ten CapsLock?

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.