Witam
W moim projekcie występuje silnik krokowy, którym steruję z zewnętrznym sterownikiem.
Potrzebuję więc jedynie generować sygnały DIRection i PULse.
//Będzie to odwrócone wahadło.
Nie mam sprzężenia zwrotnego od silnika.
Silnik będzie przesuwał liniowy wózek.
Będę chciał zaimplementować rozpędzanie i zwalnianie silnika.
Do celu generacji PULSE wykorzystuję timer w trybie generacji częstotliwości TC_WGMODE_FRQ_gc .
Generację częstotliwości wyłączam zerując preskaler taktowania licznika TC_CLKSEL_OFF_gc.
Problem:
Potrzebne jest mi jeszcze liczenie ile impulsów wysłałem do sterownika.
Muszę liczyć np. zbocza opadające pinu wysyłającego sygnał PULSE.
Na razie rozwiązałem to tak, że mam dodatkowy licznik. Jest taktowany w ogóle osobnym pinem, ZEWNĘTRZNIE ZWARTYM do pinu pulse.
Zdaję sobie sprawę, że nie jest to najlepsze rozwiązanie.
Czy można jakoś wychwycić systemem zdarzeń zbocze pinu kiedy jest on wyjściem, w dodatku jest kontrolowany przez timer w trybie FRQ GEN?
Jak inaczej liczyć wykonane kroki?
__
Czy w ogóle takie podejście do sterowania krokowcem ma sens? Może są jakieś inne sposoby?
Trochę się w tym pomotałem.
W jednym liczniku chcę mieć aktualną pozycję. Do zadawania nowej chcę wpisywać nową do compare, włączać gen. cz. i wyłączać gdy aktualne położenie =compare= nowe położenie.
Z góry dzięki za wszelkie wypowiedzi
W moim projekcie występuje silnik krokowy, którym steruję z zewnętrznym sterownikiem.
Potrzebuję więc jedynie generować sygnały DIRection i PULse.
//Będzie to odwrócone wahadło.
Nie mam sprzężenia zwrotnego od silnika.
Silnik będzie przesuwał liniowy wózek.
Będę chciał zaimplementować rozpędzanie i zwalnianie silnika.
Do celu generacji PULSE wykorzystuję timer w trybie generacji częstotliwości TC_WGMODE_FRQ_gc .
Generację częstotliwości wyłączam zerując preskaler taktowania licznika TC_CLKSEL_OFF_gc.
Problem:
Potrzebne jest mi jeszcze liczenie ile impulsów wysłałem do sterownika.
Muszę liczyć np. zbocza opadające pinu wysyłającego sygnał PULSE.
Na razie rozwiązałem to tak, że mam dodatkowy licznik. Jest taktowany w ogóle osobnym pinem, ZEWNĘTRZNIE ZWARTYM do pinu pulse.
Zdaję sobie sprawę, że nie jest to najlepsze rozwiązanie.
Czy można jakoś wychwycić systemem zdarzeń zbocze pinu kiedy jest on wyjściem, w dodatku jest kontrolowany przez timer w trybie FRQ GEN?
Jak inaczej liczyć wykonane kroki?
__
Czy w ogóle takie podejście do sterowania krokowcem ma sens? Może są jakieś inne sposoby?
Trochę się w tym pomotałem.
W jednym liczniku chcę mieć aktualną pozycję. Do zadawania nowej chcę wpisywać nową do compare, włączać gen. cz. i wyłączać gdy aktualne położenie =compare= nowe położenie.
Z góry dzięki za wszelkie wypowiedzi