(10-09-2019, 08:29)Robson Kerman napisał(a): Może suma nie osiąga wartości 30?Dla liczb zmiennoprzecinkowych == często nie mają zastosowania.
kataklysm napisał(a):potrzebowałem miec większą rozdzielczość tego licznika więc użyłem float:W ten sposób nie zwiększysz rozdzielczości enkodera tylko sposób reprezentacji. W programach należy unikać liczb zmiennoprzecinkowych, zwłaszcza w powolnych AVR bez FPU. Jeśli dane chcesz reprezentować z rozdzielczością 0,01 użyj liczb stałoprzecinkowych. Jeśli chcesz zwiększyć rozdzielczość enkodera używaj obu zboczy sygnału z enkodera (rozdzielczość x 2) albo obu zboczy obu sygnałów (A i B) wtedy rozdzielczość zwiększysz 4 krotnie. Nie z każdym enkoderem to się uda, niektóre zatrzymują się tylko w takich pozycjach, że rozdzielczość można zwiększyć tylko 2 krotnie. Jeśli potrzeba jeszcze większa precyzja użyj innego enkodera, który daje więcej impulsów na obrót.
Porównanie trzeba realizować w procedurze przerwania od enkodera, w przeciwnym wypadku nie zawsze będzie wykonane poprawnie.