Bluzman napisał:
Użyłem preskalera 8, rozumiem że wyliczoną wartość w tym przykładzie, która wynosi 1500 microsec należy wpisać do OCR1A lub OCR1A?
Ta liczaba 1500 nie jest wartością wyliczoną a przyjęta jako czas trwania impulsu, jako parametr dla "STOP" i nie jest to OCR1A ani też nie jest to analogiczna wartośc dla kanału B, które będziesz zmieniał w zależności od potrzeb kierunku lub szybkości obrotowej sterowanych serv. Te wartości o których mowa należy dopiero obliczyc (!) Troche skomplikowane (!), ale to jest taka właśnie metoda. Może diagram/(wykres) rozjaśniłby trochę miejsce tych wartości konfiguracyjnych co sugerowałem poprzednio.
Bluzman napisał:
Jakbyś obliczył takie wartości? Mówię tu o wzorach z liczbami, procesie steep by steep.
Ja mam taki system nauki, że uczę się na przykładach, analizując przykładowy proces, zagadnienie (na zasadzie "jak to jest zrobione" właśnie krok po kroku). Później do wzoru podstawiam swoje dane, sprawdzam w praktyce i taki datasheet staje się zrozumiały. Bo dokumentacje jak dla mnie to są przydatne do zastosowań praktycznych może w 50%, jak sam napisałeś jakieś diagramy itp. są uogólnione,
Przecież w Datasheet takie wzory są podane w każdej sekcji dotyczącej wybranego trybu pracy; więc co jeszcze potrzebujesz?
Podstaw do wybranego wzoru swoje dane i masz gotowe wyniki. Wzory te sa bardzo proste i nie wymagają znajomości matematyki z poziomu akademickiego. Proste przekształcenia wzorów chyba potrafisz dokonac?
Zacznij od określenia częstotliwości pulsowania sygnału wyjściowego, która dla zwykłych /analogowych serv jest określana na ok.50 Hz (impuls co 20 msec.)
Masz tu przykład wyciągnięty z d/s:
Na tą częstotliwośc ‘nałożysz’ generowanie sygnału wyjściowego zgodnie z tabelą podaną w poprzednim poście.
Jeżeli nie rozumiesz pewnych zwrotów to zadaj konkretne pytanie, aby uzyskac wyjaśnienie..
Poza tym możesz korzystac z niezłego translatera Google ’on line’....
W dalszej części przydatne jest posłużyc sie diagramem autentycznego przebiegu tworzenia fali na pinach wyjściowych, skojarzonych z kanałami A i B Timera1.
Na osi Y odkładasz ilośc impulsów (clicks timera1); oś X reprezentuje czas [w microsec].
Zauważ że w tym szczególnym przypadku 1 click timera jest też równy 1 microsec, co ułatwia określenie zmiennych OCR1A , OCR1B (patrz diagram). Tak zawsze nie jest i zwykle wymaga dodatkowych przeliczeń czasu impulsu na ilośc clicków.
Górna częśc tego diagramu będzie do pewnego stopnia jednakowa dla obydwu kanałówA i B
Jak dotychczas zostały określone wartości dla OCR1A i OCR1B tylko dla impulsów STOP
Zechcesz tymi serwami kręcic w wybranych kierunkach to te wartości dla OCR1A / B winny byc zmiennymi i zadawanymi w/g potrzeb.
Przesuwając na wykresie purpurową linię w gore i w dół otrzymasz zmiany w szerokości impulsu. Aby nie zagęszczac tego wykresu, nie umieszczałem tych dodatkowych przebiegów, jak też pominąłem drugiego kanału.
W podobny sposób formowałbyś impulsy w innym trybie na przykład „Fast PWM”, gdzie timer nalicza swoje clicks tylko w góre do określonej (innym wzorem !) wartości i zeruje się. Z takiego przebiegu tworzy się również analogicznie odpowiedni diagram w/g., którego określa się te graniczne lub robocze wartości OCR1A i OCR1B.
Mam nadzieję że to powinno rozwiac wątpliwości co do dokładności datasheet/ . To wszystko jest tam opisane dokładnie ‘krok po kroku’ tak jak tego wymagałeś na początku. Trzeba czytac, niektóre fragmenty nawet kilkakrotnie (!!)
Ps.
Nie sądzę, aby datasheets Atmela były zbyt przesadnie obszerne i wymagały drastycznego 'okrojenia' (!)
Jest tam wszystko dokładnie opisane do wykorzystania dla każdego, pod względem poziomu i potrzeb użytkownika tego produktu.
W/g mojego odczucia, to chyba najlepsze jakie czytałem.
Eh, może to tylko moja opinia....
e marcus