Dokładnie to nie pamiętam, bo się tym zajmowałem kilka lat temu.
Ale z tego co mi chodzi po głowie, to po wykryciu kodu synchronizowanego z wrzecionem czeka na jeden indeks, a potem już liczy pozycję z kanałów A i B, aż do zerwania synchronizacji innym kodem modalnym (np. G0, G1, G2/G3...).
Wynika z tego rzecz bardzo ważna, mianowicie jak będziesz gubił impulsy z A/B, to się będą działy cuda, bo z obrotu na obrót błędy będą się kumulować...
Jak pisałem wcześniej, ja mam w tokarce enkoder samoróbkę 40 cpr (tak mi wyszło ze średnicy tarczy i wymiarów transoptorów szczelinowych) i nigdy nie miałem problemów ze zbyt małą rozdzielczością.
Enkoder jest liczony na base_thread, więc maksymalną częstotliwość obliczysz z tego parametru, pod warunkiem jednak, że komputer się nie przycina raz na jakiś czas, co krokowce mogą ścierpieć, ale enkoder zgubi pozycję...
Jak też wcześniej pisałem, trzeba komputer sprawdzić analizatorem stanów logicznych (na Aliexpress to groszowa sprawa).
W linuxcnc stepgen można ustawić w tryb częstotliwości, więc raz puszczony będzie chodził dopóki go nie wyłączysz.
Jakby się komuś chciało, to można układ do wykrywania brakujących impulsów zrobić na mikrokontrolerze (przerwanie zewnętrzne zeruje licznik, przepełnienie licznika ustawia alarm).
Zasada jest taka, że jeśli komputer spóźni się z wystawieniem impulsu, to spóźni się też z odczytaniem impulsu...
Dodane 7 minuty 19 sekundy:
Ale z gwintowania na sztywno już nic nie będzie, a to naprawdę fajna sprawa...