Skocz do zawartości

Robot odkurzacz


Pomocna odpowiedź

W tym wypadku wykorzystałbym je jako zatrzymanie do czasu spełnienia warunku.

Np.

while Kran_1 = 1
wend

Da Ci tyle, że dopóki krancówka 1 nie zostanie wciśnieta program nie pójdzie dalej.

Hmm już rozumiem 🙂

Tylko mam jeszcze jedno pytanie odnośnie tej komendy while wend. Bo jeżeli czytam Twoje posty i jednocześnie czytam helpa z bascom'a nie do końca jestem pewien w jaki sposób użyć tej komendy.

Poniżej przedstawiam dwa sposoby, który jest właściwy??

Przod
L1_a = 1
while Kran_2 = 0
wend
Return

oraz drugi

Przod
while L1_a = 1
Kran_1 = 1
wend
Return

Właśnie zaprogramowałem procesor w ten sposób:

$regfile = "attiny2313.dat"
$crystal = 4000000

Config Pinb.0 = Output                                      'ustalanie portow wyjscowych
Config Pinb.1 = Output
Config Pind.3 = Input                                       'ustalanie portow wejscoiwych
Config Pind.4 = Input
Config Pind.5 = Input


Kran_1 Alias Pind.4                                         'zmiana nazw portow
Kran_2 Alias Pind.5
Gl_1 Alias Pind.3
L1_a Alias Portb.0
L1_b Alias Portb.1


Set Portd.3                                                 'podcaganie portu
Set Portd.4
Set Portd.5

L1_a = 0                                                    'ustalenie stanow niskich
L1_b = 0                                                    'na wyjsciach

Do                                                          'glowny program

  Waitms 90                                                'czekaj 90ms


  If Kran_1 = 0 And Gl_1 = 0 Then                          'jesli czu.1 zostanie zalaczony to przejdz do Cofnij
     Waitms 15
     Gosub Przod
  Elseif Kran_2 = 0 And Gl_1 = 0 Then                      'jesli czu.2 zostanie zalaczony to przejdz do Cofnij
     Waitms 15
     Gosub Tyl
  Else
     L1_a = 0
     L1_b = 0
  End If
Loop
End


Przod:
  L1_a = 1
  While Kran_2 = 0
  Wend

Return

Tyl:
  L1_b = 1
  While Kran_1 = 0
  Wend

Return

i niestety nie działa. Mam wciśniętą jedną krańcówkę, jak naciskam switcha głównego to silnik ruszam ale jak puszcze obojętne co to silnik się zatrzymuję 🙁 a powinien się kręcić dopóki nie nacisnę drugiej krańcówki

Fusebity dobrze ustawione. Co więc jest problemem??

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