Dzień dobry.
Mam taki problem - otóż chcę za pomocą Atmegi8 sterować mostkiem H i silnikami DC. Chcę to zrobić przy pomocy zwykłego pilota z odbiornikiem. Pilot ma 4 przyciski i każdemu przyciskowi odpowiada jeden pin na odbiorniku pilota. Po wciśnięciu przycisku A na pilocie, na pinie A pojawia się stan wysoki, jak puszczam przycisk to pojawia się stan niski, itd. dla każdego przycisku. Odbiornik zasilany z 5V. Na początku, do celów testowych, korzystam z jednego przycisku pilota
Algorytm jest prosty - odbiornik wysyła stan wysoki na pin PB0 to silnik ma zacząć się kręcić. Pojawia się stan niski - silnik przestaje się kręcić.
Kiedy obsługuję to wydarzenie poprzez najprostsze podanie na pin PB0 stanu wysokiego to działa jak należy. Silniki obsługiwane przy pomocy mostka L293DNE i z jego obsługą nie ma żadnego problemu. Oto kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Program zrobiony jak powyżej działa dobrze, silniki się kręcą. Ale chciałbym to umieścić w przerwaniu. Algorytm również prosty: wysyłam pilotem stan wysoki na pin PB0 -> przerwanie od zbocza narastającego -> włączenie/wyłączenie silników -> zmiana zbocza wywołującego przerwania. Jednak tu mam problem, bo atmega w ogóle nie reaguje mi na podanie zbocza narastającego. Oto kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
No i powyższy kod nie działa, zero reakcji. Gdzie może być błąd?
Proszę uprzejmie o wskazówki i pozdrawiam.