Planuję wykonanie sterownika silnika DC tak, aby utrzymywać zadaną pozycję. Enkoder silnika będzie pracował z dekoderem kwadraturowym procesora i sterował licznikiem. Drugi licznik będzie zliczał impulsy step dir. Mam taki dylemat czy stworzyć dwa liczniki 32bit i obliczać błąd z wartości bezwzględnych co jest trochę bez sensu, bo trzeba ciągle odejmować liczby 32bit, a wartość błędu jest max kilkaset. Drugi pomysł to odejmować wartości w samym liczniku, np:
liczniki 1 = licznik1 - licznik2
licznik2 = 0
W takim przypadku wartość błędu będzie od razu w liczniku. Problem jest tylko taki, że w czasie operacji na licznikach może dochodzić do gubienia impulsów.
liczniki 1 = licznik1 - licznik2
licznik2 = 0
W takim przypadku wartość błędu będzie od razu w liczniku. Problem jest tylko taki, że w czasie operacji na licznikach może dochodzić do gubienia impulsów.