michal9797 Napisano Grudzień 2, 2010 Udostępnij Napisano Grudzień 2, 2010 Cześć! Dopiero zaczynam drogę z elektroniką. Chciałem zrobić robota (w podobie do walliego). Tylko, że nie rozumiem o co chodzi z tym PWM (ponieważ chcę użyć go w moim robocie). Czytam i czytam, ale nic dalej nie rozumiem. Wiem że to jest to regulator szerokości impulsów. Znalazłem kod do PWM do Bascoma, ale nie wiem co oznacza: "Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down" Czy ktoś by mógł mi to wytłumacyć dobrze i po chłopsku te PWM, compare a i b Pwm?
Marooned Grudzień 2, 2010 Udostępnij Grudzień 2, 2010 W tym poście masz link do łopatologicznego opisu PWM. Polecam przebić się przez cały materiał, mocno Cię oświeci.
michal9797 Grudzień 2, 2010 Autor tematu Udostępnij Grudzień 2, 2010 Ale nie mogę z tego nic wywnioskować (czytałem ten temat kilka razy). Wiem, że częstotliwość zmienia się przez preskala. A i chciałbym, żeby ktoś mi wytłumaczył jak to się ustawia w Bascom (bardziej po co jest te compare a i b i jak je obsługiwać)?
nes86 Grudzień 2, 2010 Udostępnij Grudzień 2, 2010 w datasheecie atmegi masz to bardzo łopatologicznie wyjaśnione.
michal9797 Grudzień 2, 2010 Autor tematu Udostępnij Grudzień 2, 2010 To jak podwyższe PWM z 1 do 8 to spadnie prędkość silniczka, tak? Czy nie? A prescale jak podniosę szybciej?
Bobby Grudzień 2, 2010 Udostępnij Grudzień 2, 2010 W configu timera parametr PWM może mieć tylko wartości 8,9,10, z tego co się orientuję. Odpowiada to za rozdzielczość tego PWM - 8bit, 9bit i 10bit. Wypełnieniem sterujesz potem używając PWMXY = Z, gdzie X - numerek timerka, Y literka nóżki OC, Z wypełnienie pwm. Np pwm1a = 238, czyli wypełnienie 238/rozdzielczość, pin OC1A.
BlackJack Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 "Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down" Czy ktoś by mógł mi to wytłumacyć dobrze i po chłopsku te PWM, compare a i b Pwm? Tzn: Timer1 będzie pracował jako generator PWM PWM = 8 => generator PWM będzie miał rozdzielczość 8 bitów Prescale = 1 => dzielnik częstotliwości ustawiony na 1, czyli brak podziału. Z tego można policzyć że przy częstotliwości CPU np. 1MHz, częstotliwość przebiegu PWM wynosić będzie: 1 000 000 / (256 * 1) czyli 3906,25Hz (3,9KHz) Argumenty Compare A i Compare B określają jak się będą zachowywać końcówki OC1A i OC1B.
Sabre Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 Z tego można policzyć że przy częstotliwości CPU np. 1MHz, częstotliwość przebiegu PWM wynosić będzie: 1 000 000 / (256 * 1) czyli 3906,25Hz (3,9KHz) Akurat tego nie byłbym pewien, ja się kiedyś naciąłem przy sprzętowym PWMie i do dziś nie wiem gdzie był pies pogrzebany, ale u mnie dochodził jeszcze nie wiadomo skąd podział przez 2.
grabo Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 u mnie dochodził jeszcze nie wiadomo skąd podział przez 2 Widocznie zamiast Fast PWM używałeś Phase Correct PWM
BlackJack Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 No niestety z AVRemi jest taki knif że AVR, AVRowi nie równy. O ile w 51' niezależnie jaki proc wziąłeś to Timer był zawsze dokładnie taki sam, w sensie bitów kofiguracyjnych, ich znaczenia funkcyjnego i rozlokowania. W AVR niestety dzięki ATMELowi tak nie jest, i przyznam że mi się też już takie niespodzianki zdarzały, ale głownie dotyczyło to procesorów TINY. A z drugiej strony BASCOM był pisany pod procesory serii AT90Sxxxx i pierwsze Megi, więc na nowszych procach lub kombinowanych architekturach jak TINY, prawie zawsze jakaś niespodzianka wyskoczy.
brodzik Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 Cześć! Jestem nowy na tym forum. Zacząłem interesować się elektroniką dzięki temu forum. Ale mam pytanie (może wyda się głupie) o co chodzi z tą rozdzielczością w PWM (i co daje jeżeli zamiast 8 bitów w pisze 10 bitów) i timerem(czy to podaje długość odstępu impulsów?) i jak podam, że compare a ma być clear up (i co się stanie?)? P.s Proszę o szybką odpowiedź.
BlackJack Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 Rozdzielczość to niejako precyzja (dokładność) dokonywanych zmian wypełnienia. Dla 8 bitów masz 256 kroków czyli masz dokładność ~0,39%, dla 10bitów =>1024 czyli 0,097%, dodatkowo rozdzielczość wpływa ci na max częstotliwość jaką możesz uzyskać, bo to defakto licznik programowalny, przy czym ważna jest jego długość. Ogólnie dla Fast PWM można przyjąć następujący wzór: F_PWM = F_CPU / (Preskaler * rozdzielczość PWM)
brodzik Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 To o to chodzi, że jakby dokładność predłuża działanie impulsu. A z wypełnieniem o co chodzi?
BlackJack Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 Nie nie przedłuża, większa rozdzielczość pozawala ci tylko na dokładniejsze sterowanie długością trwania impulsu. Ale 8 bit wystarczy, no prostsze programowanie.
brodzik Grudzień 3, 2010 Udostępnij Grudzień 3, 2010 A o co chodzi z wypełnieniem? Jest to jaby siła impulsów?
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »