Skocz do zawartości

Problem z programem do linefollowera.


Pomocna odpowiedź

Napisano

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

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ć)...

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

 ' +++++++++++ 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 😉

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;
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?

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