Skocz do zawartości

Problem z PWM


miccaldo

Pomocna odpowiedź

Witam, chciałbym zaprogramować PWM na uC attiny 2313, jednak nie rozumiem pewnej rzeczy, otóż w tabelce 'Waveform Generation Mode Bit Description' chcę wybrać PWM, Phase

Correct, bo wyczytałem że do ogólnych zastosowań ten jest odpowiedni, tylko są dwa, i teraz który wybrać? Ale załóżmy że pierwszy, muszę ustawić stan wysoki na WGM0, ale w TCCR0A jest WGM00, to jest to samo tak?

Pozdrawiam

Edit: Znalazłem drugą tabelkę i tam jest wszystko ok.

Link do komentarza
Share on other sites

Na twoje pytanie odpowiada właściwie to zdane z noty:

The counter counts repeatedly from BOTTOM to TOP and then from TOP to BOTTOM.

TOP is defined as 0xFF when WGM2:0 = 1, and OCR0A when WGM2:0 = 5.

które można przetłumaczyć mniej więcej tak:

Licznik liczy od wartości BOTTOM (czyli zero) do wartości TOP (o tym dalej), po czym zmienia kierunek zliczania od wartości TOP do BUTTON, i tak w koło. Wartość TOP jest zdefiniowana na 0XFF (255) jeżeli WGM2:0 = 1 (MODE 1 w tabelce), lub jest równa wartości wpisanej do OCR0A, w trybie 5 z tabelki (WGM2:0 = 5).

Bardziej na chłopski rozum.

Jak wybierzesz tryb nr 1 PWMa, to masz stałą rozdzielczość, oraz częstotliwość PWM zgodnie z wzorem z noty.

Jeżeli wybierzesz tryb 5 PWM, to rozdzielczość PWMa ustawiasz rejestrem OR0A, Ale wtedy tracisz kanał OC0A, niejako i masz tylko dostępny OC0B, ale za to masz większa dynamikę częstotliwości PWMa. Częstotliwość PWM, wyznacza się wtedy nieco inaczej, znaczy za 510 we wzorze trzeba podstawić 2xOCR0A.

Chyba niczego nie pogmatwałem. Ogólnie należałoby poszukać czy nie ma jakiej ERRATY do noty ATTINY2313, bo jest to w niej wytłumaczone to trochę tak niejasno, i łatwo się pogubić szczególnie o 23 wieczorem.

Link do komentarza
Share on other sites

Ok, czyli na początek będę próbował z tą pierwszą pozycją.

Ale nie rozumiem po co jest tabelka 40 Waveform Generation Mode Bit Description, skoro bitów WGM2, WGM1 i WGM0 w żadnym rejestrze w ogóle nie ma? A z kolei jeżeli chcę ustawić timer0, to zależnie od trybu muszę ustawić któreś z bitów: WGM01, WGM00, WGM02, ale tych bitów w żadnej tabelce nie ma! W związku z tym nie mam pojęcia jak ustawić powiedzmy Fast PWM w timerze 0.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.