Pytanie miało na celu utwierdzenie mnie w przekonaniu o konieczności stosowania timerów i generowanych przez nie przerwań w celu wywołania podprogramów powodujących ruch w poszczególnych osiach.jarekk pisze:Podaj konkretne zastosowanie(lub problem)- co potrzebujesz zrobić, bo Twoje pytanie jest zbyt ogólne.
Np. chcemy obsłużyć ploter pracujący w dwóch osiach. Transmitujemy dane z PC do mikrokontrolera w postaci punktów (x,y). Mamy poruszać się z punktu (0,0) do punktu (100,10). Aproksymacją toru ruchu będą "schodki": 10 kroków wzdłuż osi x i 1 wzdłuż osi y, itd. 10 razy. Zakładając pracę z najprostszym sterownikiem silników krokowych - wysyłamy mu impuls "1" (do silnika pracującego w osi x) o określonym czasie trwania . Tu pojawia się problem czy czas ten odliczamy w pętli, czy korzystamy z timera? Następny okres oczekiwania związany jest z prędkością obrotów silnika (przesuwu liniowego) i pojawia się ten sam problem, z tym, że czas oczekiwania jest dużo większy. Zamiast tracić go na wykonywanie pętli odliczającej czas procesor mógłby wtedy realizować inne zagadnienia.
Po wykonaniu kroków w osi x badamy czy wykonać krok w osi y i napotykamy na podobne problemy. Poza tym wyonując krok w osi y opóźniamy wykonanie co 10 kroku w osi x.
Zasadniczo masz rację. Nie chodzi mi o podanie dokładnego algorytmu, a przykładowe ogólne rozwiązania (zrealizowane w praktyce)pit202 pisze: rozwiazaniem problemu jest oprogramowanie i wymyslenie algorytmu dzialania timera lub kilku timerow , w ktorych istanialy by algorytmy ktore sterowaly by tymi silnikami ze zmiennych a w petli glownej programu nastepowala by logika.