Witam.
Czy w AVR można uruchamiać wątki? Chodzi mi o coś takiego:
1. Uruchamiam PWM
2. Na pinie np: Pind.1 ma sie zmieniac stan co 250ms
3. Na pinie Pinb.2 stan ma się zmieniać co 1s.
Stosując polecenie waitms program będzie czekał w sumie 1250ms, a to odpada. Czy istnieje jakaś możliwość rozwiązania tego problemu? Dodam, że PWM ma zmieniać swoją wartośc też co jakiś czas.
Dziękuję za pomoc.
[ Dodano: 14-12-2004, 11:26 ]
Dodam, że chodzi o AT90S2313, zapomniało mi się
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięAVR i wątki ?
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Niestety na AVR w bascomie nie ma czegoś takiego jak wątki jest tylko kombinatoryka z timerem.
Odpalasz timer z czasem co 1 ms lub prościej co 250 ms.
Wkładasz licznik (inkrementujesz jakąś zmienną). Jeśli jest wieloktrotność odpowiednia dla 250 to zmieniasz stan PWM na pierwszym pinie, jeśli jest wielokrotność = 1 s to zmieniasz na drugim pinie . Przerwanie timerat dla prostszego przykładu co 250 ms
Dla bardzie skomplikowanych zadań zapraszam na stronę Marka program "Pseudo multitasking" ale również w sieci widziałem programy z kolejkami i priorytetami.
Odpalasz timer z czasem co 1 ms lub prościej co 250 ms.
Wkładasz licznik (inkrementujesz jakąś zmienną). Jeśli jest wieloktrotność odpowiednia dla 250 to zmieniasz stan PWM na pierwszym pinie, jeśli jest wielokrotność = 1 s to zmieniasz na drugim pinie . Przerwanie timerat dla prostszego przykładu co 250 ms
Kod: Zaznacz cały
Licz_czas:
pwm1a=Rnd(255)
incr t
if t >4 then
t =1
pwm1b=Rnd(255)
end if
return
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 gości