lukiradom Napisano Marzec 15, 2010 Udostępnij Napisano Marzec 15, 2010 Witam, od dłuższego czasu walczę z Atmegą 16. Chcę napisać bardzo prosty program do linefollowera z dwoma czujnikami. Nie mogę sobie poradzić z wejściami. Gdy daję 1 na któreś z wejść, to nic się nie dzieje. Poniżej zamieszczam program, może tam jest coś nie tak. $regfile = "m16def.dat" $crystal = 16000000 'definiujemy z jakim taktowaniem be;dzie pracowa? 'deklaracja podprogramow: Declare Sub Wprzod Declare Sub Wlewo Declare Sub Wprawo Config Portb = Input 'port b jako wejścia Config Portd = Output 'port d jako wyjścia Portb = &B00000000 ' stan spoczynkowy portu B Portd = &B00000000 ' stan spoczynkowy portu D Sensor_l Alias Pinb.2 'lewy czujnik Sensor_p Alias Pinb.3 'prawy czujnik Motor_l Alias Portd.0 'wyprowadzenia dla silników Motor_p Alias Portd.1 Waitms 10 Do If Sensor_l = 1 And Sensor_p = 1 Then Wprzod Waitms 5 Elseif Sensor_l = 0 And Sensor_p = 0 Then Wprzod Waitms 5 Elseif Sensor_l = 0 And Sensor_p = 1 Then Wlewo Waitms 5 Elseif Sensor_l = 1 And Sensor_p = 0 Then Wprawo Waitms 5 End If Loop 'polecenia dla silników Sub Wprzod: Motor_l = 1 Motor_p = 1 End Sub Sub Wlewo: Motor_l = 0 Motor_p = 1 End Sub Sub Wprawo: Motor_l = 1 Motor_p = 0 End Sub End Atmegę zasilam napięciem z USB, tym samym napięciem daję 1 na wejściu. Z Atmegą8 nie miałem takich problemów. Pozdrawiam.
Nawyk Marzec 15, 2010 Udostępnij Marzec 15, 2010 A na pewno masz wszystko dobrze polutowane? I czy dobre piny zadeklarowałeś jako sensory itp. Program wydaje się być ok..
Sabre Marzec 15, 2010 Udostępnij Marzec 15, 2010 Ja na twoim miejscu zmieniłbym definicję wejść/wyjść, widzę, że używasz tylko 2 wejść, więc po co definiujesz cały port? Prawidłowa, działająca definicja w Bascomie, która często jest mylona: konfiguruje się poleceniem pin: Config Pinb.5 = Input ustawia stan poleceniem port: Set Portc.3 sprawdza stan poleceniem pin: If Pinc.3 = 0
Pomocna odpowiedź
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ę »