Witam,
Od niedawna zacząłem swoją przygodę z mikrokontrolerami AVR, aktualnie pracuję na Atmedze 328p. Chcę napisać program, który będzie sterował silnikami krokowymi z różnymi prędkościami (prędkość uzależniona jest od częstotliwości podawania stanu wysokiego na sterownik silnika). Chcę wykorzystać do tego timery, jednak nie mogę zrobić sterowania bezpośrednio z licznika, ponieważ projekt przewiduje 5 silników, które będą pracowały niezależnie. Udało mi się wygenerować dwa sygnały przy wykorzystaniu jednego licznika. Licznik po przepełnieniu generuje przerwanie, gdzie inkrementuje 2 zmienne, te zaś wykorzystuje do warunków zmiany stanu na przeciwny (na razie symulacja na diodach LED). Program wygląda tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Chciałem wykonać to samo, jednak bez generowania przerwania, zmienne byłyby inkrementowane flagą przepełnienia. Próbowałem odczytać rejestr TOV0, niestety cały czas otrzymuję wartość 0. Nie bardzo wiem jak rozwiązać ten problem, szukałem w googlach niestety nie znalazłem nigdzie informacji jak tą flagę odczytywać.
Dziękuję za pomoc.