Pracuje nas sterowaniem małego serwomechanizmu: http://www.rctrax.pl/product/Serwo-HXT500-5g-8kg-10sec-Micro-Servo/?id=4499
Programuje w Bascom AVR i do tego celu wykorzystuję jedynie Timer0. Nie mogę wykorzystać dodatkowego timera1 bo ten będzie służył do odliczania czasu. Instrukcji Serwos() także nie chce wykorzystywać...jakoś nie mam do niego zaufania :/
Aktualnie program wygląda następująco:
Procesor działa na wewnętrznym kwarcu 8MHz.
Program w zasadzie działa jednak nie do końca wartości w zmiennej Pulse zgadają się z długością impulsu jaki chce generować.
Bo np położenie ramienia serwa na środku powinno być dla 15 wa tymczasem jest przy Pulse=13.
Także zmiany skrajnych wartości wynoszą odpowiednio Pulse=5 i Pulse=21, co w obliczeniach teoretycznych odpowiada czasom 500us i 2100us.
Moje pytanie: czy możliwe jest aby taki rozrzut czasów spowodowany był tolerancją w serwie czy bardziej jest to wynik wykorzystania wewnętrznego kwarcu RC z attiny24?
Programuje w Bascom AVR i do tego celu wykorzystuję jedynie Timer0. Nie mogę wykorzystać dodatkowego timera1 bo ten będzie służył do odliczania czasu. Instrukcji Serwos() także nie chce wykorzystywać...jakoś nie mam do niego zaufania :/
Aktualnie program wygląda następująco:
Kod: text
Procesor działa na wewnętrznym kwarcu 8MHz.
Program w zasadzie działa jednak nie do końca wartości w zmiennej Pulse zgadają się z długością impulsu jaki chce generować.
Bo np położenie ramienia serwa na środku powinno być dla 15 w
Kod: text
Także zmiany skrajnych wartości wynoszą odpowiednio Pulse=5 i Pulse=21, co w obliczeniach teoretycznych odpowiada czasom 500us i 2100us.
Moje pytanie: czy możliwe jest aby taki rozrzut czasów spowodowany był tolerancją w serwie czy bardziej jest to wynik wykorzystania wewnętrznego kwarcu RC z attiny24?