Po uruchomieniu diody i wyświetlacza LCD poprzez ATB-ETH i TCP/IP przyszedł czas na silnik krokowy bipolarny.
Najpierw korzystając z biblioteki z książki pobawiłem się krokowcem, sprawdziłem ile ma kroków na pełny obrót, pokręciłem w prawo, lewo itp.
Przyszedł czas na dopisanie jego obsługi do mojej stronki www. Tak jak pisałem w poprzednim poście na temat eth+lcd mam zrobiony formularz w którym tym razem podaje się ilość kroków do urla, póki co ograniczyłem się do kręcenia w jedną stronę żeby zbytnio nie komplikować kodu. I teraz tak:
Warunek if:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ładnie nadaje zmiennej step_cmd wartość "6" następnie:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Zczytuje ile kroków na osi x "ox" silnik ma wykonać, nadając zmiennej step_x zadaną wartość co sprawdzam wyświetlając sobie na LCD.
Następnie w/w pętla for powinna wykonać zadaną ilość kroków w lewo ale niestety silnik robi 1 krok i w układzie pojawia się zwarcie gdyż przygasa podświetlenie LCD a silniczka nie da się przekręcić palcami w żadną stronę.
Oczywiście mam ustawiony timer dla silnika:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Włączenie przerwań sei(); jest oczywiście w funkcji main().
Oraz obsługę przerwania:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Proszę o podpowiedź gdzie popełniam błąd bo już skończyły mi się pomysły.