Skocz do zawartości

Program do sprawdzenia [Bascom, AVR]


coollerus

Pomocna odpowiedź

Czy dobrze napisałem program do line followera?

$regfile = "2313def.dat"

$crystal = 4000000

Config Portb = Output

Config Portd = Input

Portb = &B00000000

Portd = &B00000000

silnikp alias portb.1

silnikl alias portb.2

czujnikp alias pind.2

czujniksp alias pind.3

czujniksl alias pind.5

czujnikl alias pind.4

do

If czujnikp=1 and czujniksp=0 and czujniksl=0 and czujnikl=1 then gosub go

elsoIf czujnikp=0 and czujniksp=0 and czujniksl=0 and czujnikl=0 then gosub go

elsoif czujnikp=1 and czujniksp=0 and czujniksl=0 and czujnikl=0 then gosub prawo

elsoif czujnikp=1 and czujniksp=1 and czujniksl=0 and czujnikl=1 then gosub prawo

elsoif czujnikp=1 and czujniksp=1 and czujniksl=0 and czujnikl=0 then gosub prawo

elsoif czujnikp=1 and czujniksp=1 and czujniksl=1 and czujnikl=0 then gosub prawo

elsoif czujnikp=0 and czujniksp=0 and czujniksl=0 and czujnikl=1 then gosub lewo

elsoif czujnikp=1 and czujniksp=0 and czujniksl=1 and czujnikl=1 then gosub lewo

elsoif czujnikp=0 and czujniksp=0 and czujniksl=1 and czujnikl=1 then gosub lewo

elsoif czujnikp=0 and czujniksp=1 and czujniksl=1 and czujnikl=1 then gosub lewo

end if

loop

go:

silnikp=1

silnikl=1

return

lewo:

silnikp=0

silnikl=1

return

prawo:

silnikp=1

silnikl=0

return

Link do komentarza
Share on other sites

Przecież masz w bascomie pokazane błędy... Pozatym przy tylu warunkach lepiej użyć case.

Kilka "literówek "

$regfile = "2313def.dat" 
$crystal = 4000000

Config Portb = Output
Config Portd = Input
Portb = &B00000000
Portd = &B00000000

silnikp alias portb.1
silnikl alias portb.2

Czujnikp Alias Pind.2
Czujniksp Alias Pind.3
Czujniksl Alias Pind.5
Czujnikl Alias Pind.4

do

If Czujnikp = 1 And Czujniksp = 0 And Czujniksl = 0 And Czujnikl = 1 Then
Gosub Go
Elseif Czujnikp = 0 And Czujniksp = 0 And Czujniksl = 0 And Czujnikl = 0 Then
Gosub Go
Elseif Czujnikp = 1 And Czujniksp = 0 And Czujniksl = 0 And Czujnikl = 0 Then
Gosub Prawo
Elseif Czujnikp = 1 And Czujniksp = 1 And Czujniksl = 0 And Czujnikl = 1 Then
Gosub Prawo
Elseif Czujnikp = 1 And Czujniksp = 1 And Czujniksl = 0 And Czujnikl = 0 Then
Gosub Prawo
Elseif Czujnikp = 1 And Czujniksp = 1 And Czujniksl = 1 And Czujnikl = 0 Then
Gosub Prawo
Elseif Czujnikp = 0 And Czujniksp = 0 And Czujniksl = 0 And Czujnikl = 1 Then
Gosub Lewo
Elseif Czujnikp = 1 And Czujniksp = 0 And Czujniksl = 1 And Czujnikl = 1 Then
Gosub Lewo
Elseif Czujnikp = 0 And Czujniksp = 0 And Czujniksl = 1 And Czujnikl = 1 Then
Gosub Lewo
Elseif Czujnikp = 0 And Czujniksp = 1 And Czujniksl = 1 And Czujnikl = 1 Then
Gosub Lewo

end if
loop

go: 
silnikp=1
silnikl=1
return

lewo: 
silnikp=0
silnikl=1
return

prawo: 
silnikp=1
silnikl=0
Return
  • Lubię! 1
Link do komentarza
Share on other sites

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

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.