Skocz do zawartości

[Bascom] program do minisumo sprawdzenie w bascom


zuba1

Pomocna odpowiedź

Witam.Mam kłopot. Robię robota minisumo i wszystko mam zrobione teraz wziąłem się za program robiłem go dość długo jednak nie wiem czy jest poprawny.Robot szczytuje dane z 4 czujników i zamienia to na sygnały dla silników.Oto kod w bascom :

'Robot szaman v.4 procesor atmega8(L) rok2011 by zuba1

                   $regfile = "m8def.dat"
$crystal = 1000000
Config Portd = Input
Config Portc = Output

Led Alias Portc.0
'silniki
Lewoprzud Alias Portc.1
Lewotyl Alias Portc.2
Prawoprzud Alias Portc.3
Prawotyl Alias Portd.4
'czujniki przednie
Czpod Alias Pind.0 'sharp 340k
Czpodt Alias Pind.1 'sharp 340k
Cznac Alias Pind.2 'czujnik nacisku przeciwnika zamontowany na samym dole konstrukcji 
'czujniki dohio
Pp Alias Pind.3
Pl Alias Pind.4


Do
Waitms 5000
Led = 1
Gosub Szukanie
'doprzodu
If Czpod = 0 Then Gosub Atak
If Cznac = 1 Then Gosub Atak
If Cznac = 1 And Czpod = 1 Then Gosub Atak
'deklaracja szukania
If Czpod = 1 And Cznac = 0 Then Gosub Szukanie
If Czpodt = 0 Then Gosub Obrut180

'deklaracja mini sensorów dohio
'przednie
If Pp = 1 Then Gosub Obrut90
If Pl = 1 Then Gosub Obrut90
If Pp = 1 And Pl = 1 Then Gosub Obrut90

Loop

End
'deklaracja poruszania się


Wlewo:
 Prawoprzud = 1
 Lewotyl = 1
 Waitms 1000
 Prawoprzud = 0
 Lewotyl = 0
Return

Atak:
 Prawoprzud = 1
 Lewoprzud = 1
 Waitms 200
 Prawoprzud = 0
 Lewoprzud = 0
Return

Tyl:
 Prawotyl = 1
 Lewotyl = 1
 Waitms 200
 Prawotyl = 0
 Lewotyl = 0
Return

'inne dotyczące poruszania

Szukanie:
Gosub Wlewo
Gosub Atak
Gosub Atak
Gosub Atak
Gosub Atak
Gosub Atak
Return

Obrut90:
 Gosub Tyl
 Gosub Tyl
 Gosub Tyl
 Gosub Tyl
 Gosub Tyl
 Gosub Tyl
 Prawotyl = 1
 Lewoprzud = 1
 Waitms 600
 Prawotyl = 0
 Lewoprzud = 0
Return

Obrut180:
 Prawotyl = 1
 Lewoprzud = 1
 Waitms 1000
 Prawotyl = 0
 Lewoprzud = 0
Return

Jak widać jestem amatorem ale się staram.A moje pytanie brzmi "czy kod jest dobry". Z góry dziękuję.

Link do komentarza
Share on other sites

Nie rozumiem idei takich postów. Wgraj i zobacz czy jest dobry, jak będzie zły to popraw, jak będziesz miał problem to napisz. Kod umieszczaj w znacznikach .

[ Dodano: 13-12-2011, 23:02 ]

Twg to już zauważyłem błąd:

Do
Waitms 5000
Led = 1
Gosub Szukanie
'doprzodu
If Czpod = 0 Then Gosub Atak .............

Wywal waitms 5000 przed pętlę, bo będziesz miał 5s opóźnienie w każdej pętli. Czemu nie Wait 5, tylko w ms?

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!

Gość
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.