Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 18 kwi 2026, o 06:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 3 maja 2019, o 15:16 
Offline
Nowy

Dołączył(a): 03 maja 2019
Posty: 2
Pomógł: 0

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:
Składnia: [ Pobierz ] [ Ukryj ]
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.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 maja 2019, o 15:28 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27456
Lokalizacja: Szczecin
Pomógł: 1045

nie ma rejestru TOV0 - za to jest bit (flaga) w odpowiednim rejestrze - więc sprawdzaj stan tego bitu a nie rejestr cały jakiś

po drugie flaga przerwania jest automatycznie kasowana jeśli masz procedurę obsługi przerwania.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 maja 2019, o 09:33 
Offline
Nowy

Dołączył(a): 03 maja 2019
Posty: 2
Pomógł: 0

zubik,
Dziękuję za pomoc :) Mógłbyś rozwinąć dlaczego zachęcasz do korzystania z przerwań? Chciałbym wiedzieć dlaczego należy ich używać w tym przypadku :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO