zuba1 Napisano Grudzień 13, 2011 Udostępnij Napisano Grudzień 13, 2011 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ę. Cytuj Link do komentarza Share on other sites More sharing options...
KD93 Grudzień 13, 2011 Udostępnij Grudzień 13, 2011 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? Cytuj Link do komentarza Share on other sites More sharing options...
zuba1 Grudzień 13, 2011 Autor tematu Udostępnij Grudzień 13, 2011 kiedyś miałem problem z komendą wait więc przerzuciłem się na waitms a co do błędu to dzięki. 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!