Ma Pan rację. Zweryfikowałem w praktyce. Mikroprocesor AtMega168 taktowany kwarcem 18MHz.keruseykaryu pisze:Pięć serwo i wolny bascom. Chyba nie wiesz czym to grozi.
Przy zakładanej rozdzielczości 10us w między przerwaniami od przepełnienia Timer0 jest 160 cykli maszynowych. Obsługa jednego serwa "na piechotę" była idealna, okres wynosił 20ms, ale po dodaniu instrukcji warunkowych (w obsłudze przerwania) dla drugiego serwa czas ten się rozjechał do ok 23ms.
Przy korzystaniu z dedykowanych poleceń (Config Servo) też nie jest idealnie. Parametr "Reload" wcale nie jest w us, jak napisano to w helpie. Przy wartości "Reload" ustawionej na 10 przy wyżej wymienionym taktowaniu mikroprocesora dla jednego serwa, okres wynosił 25ms. Przy wartości "Reload" ustawionej na 8 przy wyżej wymienionym taktowaniu mikroprocesora dla jednego serwa, okres wynosił 20ms. ale się zwiększał o kilka ms przy zwiększaniu ilości serw. Nie wiem jaką tolerancję mają serwa na tego typu zmiany. Co do dodatniego impulsu, który przecież wyznacza położenie wałka w serwie dla większej ilości serw też mam zastrzeżenia. Sumując, będzie działać lecz nie ma mowy o jakimś precyzyjniejszym zastosowaniu niż przysłowiowe "przesuwanie rygla". Może rozbudować układ sprzętowo o jakieś liczniki programowalne, gdzie można wpisać liczbę odpowiedzialną za długość dodatniego impulsu, taki przerzutnik o programowanym przedłużeniu impulsu? Jeżeli precyzja w tym projekcie jest wymagana to
lepiej napędy było by wykonać na bazie silników krokowych.