Skocz do zawartości

Attiny2313 i kwarc


aixI

Pomocna odpowiedź

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

Pokaże kod, bo schemat uległ zniszczeniu 😃 przy formacie systemu. Są to dwa kody połączone w jeden cały - mogę sterować pilotem RC5 i omijać przeszkody. (omijanie botowi jeszcze nie wychodzi tak jak pisałem wyżej)

$regfile "attiny2313.dat"
$crystal = 1000000
$lib "mcsbyte.lbx"

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Rc5 = Pind.5
Config Portb = Output
Config Pind.2 = Input
Config Pind.0 = Input


Silnik_lewy_a Alias Portb.1                                 'Atmega8 Silnik_lewy_a Alias Portb.4  V
Silnik_lewy_b Alias Portb.0                                 'Atmega8 Silnik_lewy_b Alias Portb.0  V
Silnik_prawy_a Alias Portb.5                                'Atmega8 Silnik_prawy_a Alias Portb.5 V
Silnik_prawy_b Alias Portb.6                                'Atmega8 Silnik_prawy_b Alias Portb.3 V


Pwm1a = 255
Pwm1b = 255

Dim Address As Byte , Command As Byte
Dim Tryb As Bit

Enable Interrupts



Do
  Debounce Pind.0 , 0 , Zmiana_trybu , Sub
  If Tryb = 1 Then

'1 program


     If Pind.2 = 1 Then


        Set Silnik_lewy_a
        Reset Silnik_lewy_b
        Set Silnik_prawy_a
        Reset Silnik_prawy_b

        Debounce Pind.2 , 0 , Skrec , Sub                  'skręć, gdy czujnik wykryje przeszkode

     End If

  Else

'2 program

  Getrc5(address , Command)

  Command = Command And &B01111111

  If Command = 2 Then                                      'przód
     Set Silnik_lewy_a
     Reset Silnik_lewy_b
     Set Silnik_prawy_a
     Reset Silnik_prawy_b
  Else
     Reset Silnik_prawy_a
     Reset Silnik_prawy_b
     Reset Silnik_lewy_a
     Reset Silnik_lewy_b


  If Command = 9 Then                                      'tył
     Reset Silnik_lewy_a
     Set Silnik_lewy_b
     Reset Silnik_prawy_a
     Set Silnik_prawy_b
  Else
     Reset Silnik_prawy_a
     Reset Silnik_prawy_b
     Reset Silnik_lewy_a
     Reset Silnik_lewy_b


  If Command = 5 Then                                      'lewo
     Reset Silnik_lewy_a
     Set Silnik_lewy_b
     Set Silnik_prawy_a
     Reset Silnik_prawy_b
  Else
     Reset Silnik_prawy_a
     Reset Silnik_prawy_b
     Reset Silnik_lewy_a
     Reset Silnik_lewy_b


  If Command = 7 Then                                      'prawo
     Set Silnik_lewy_a
     Reset Silnik_lewy_b
     Reset Silnik_prawy_a
     Set Silnik_prawy_b
  Else
     Reset Silnik_prawy_a
     Reset Silnik_prawy_b
     Reset Silnik_lewy_a
     Reset Silnik_lewy_b
  End If
  End If
  End If
  End If
End If
Loop

Zmiana_trybu:
Tryb = Not Tryb
Return

Skrec:
'skręć (w prawo)
Set Silnik_lewy_a
Reset Silnik_lewy_b
Reset Silnik_prawy_a
Set Silnik_prawy_b
Waitms 250

Return
Link do komentarza
Share on other sites

Sprawdzałem na INT1 z wgranym jednym kodem (na omijanie przeszkód) to radził sobie nieźle, a jak wgrałem ten sam kod połączony z drugim (RC5) to tak samo jak przedtem.

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!

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