Tokio123 napisał: Nie mam niestety kwarcu 8MHZ i nie mam jak sprawdzić. I nie wiem czy mogę użyć wewnętrznego oscylatora.
Do kontroli amatorskiego RC-serva nie jest absolutnie konieczny kwarc!
Błąd częstotliwości wewn. oscylatora w porównaniu do rezonatora kwarcowego jest mniejszy niż błąd serva.
Musisz przyjąc ze zwykłe servo (bez encodera) ma błąd co najmniej 0.5 stopnia.
Jest to bład powodowany/generowany przez odczyt wewnętrznego potencjometru jako analogowy czytnik pozycji oraz pewien konieczny luz na zębach przekładni (backlash).
Tokio123 napisał:
Czy jeżeli zaokrąglę OCR1A i OCR1B jakaś zmienną i dzieleniem czy będę mógł uzyskać żeby servo obracało sie dokładnie co 1° ? I czy jeżeli używam też timera ICP na nóżce PD6 czy on nie będzie współpracował z servami?
Częściowa odpowiedź odnośnie dokładności do 1° jest już powyżej.
Rozwijając ten fragment policz:
Przyjmuje się że te zwykłe RC-serva operują w zakresie 0° to 180° (-90° /0° / 90°)
Przy analogicznym wysterowaniu długości impulsu: 1250 micro-sec / 1500 micro-sec /1750 micro-sec.
Naturalnie zależnie od zakupu mogą wystąpic pewne odchylenia od tych standardowych wartości.
Niemniej jednak rachunek tu jest relatywnie prosty!
Pomiędzy skrajnymi położeniami serva występuje róznica 500 microsec, co w przeliczeniu wymaga rozdzielczości:
500/180 = 2.8 micro-sec na 1 stopień.
Taktując processor chocby 8 MHz i stosując prescaler 8 otrzymasz rozdzielczośc 1 micro-sec; czyli swobodnie mieścisz się wymaganej rozdzielczości.
Reszta jest do obliczenia podczas formowania długości impulsu PWM odpowiadającego kątowi ustawienia serva.
Tokio123 napisał:
I czy jeżeli używam też timera ICP na nóżce PD6 czy on nie będzie współpracował z servami
Nie będzie współpracował ; Będzie przeszkadzał!!!
Nie mozesz jednocześnie używac tego samego timera do kontroli serva i innych zadań jak Capture. Tylko Timer1 ma tryb Capture
Jednym timerem na przykład Timer1 wysterujesz niezależnie dwa serva w oddzielnych kanałach A i B
e marcus