To nie jedyne częstotliwości dostępne dla sygnałów PWM. Są to jednak częstotliwości określone przez zastosowany preskaler (który można łatwo zmienić, jak opisano poniżej).
Każda z 3 par styków PWM jest powiązana z jednym zegarem, z których każdy ma swoją własną częstotliwość podstawową, jak następuje:
- Piny 5 i 6 są sparowane z zegarem 0, z częstotliwością podstawową 62500 Hz
- Piny 9 i 10 są sparowane z zegarem 1, z częstotliwością podstawową 31250 Hz
- Piny 3 i 11 są sparowane z zegarem 2, z częstotliwością podstawową 31250 Hz
Następnie każdy zestaw pinów ma pewną liczbę wartości preskalera, które można wybrać, które podzielą częstotliwość podstawową tej pary pinów. Dostępne wartości preskalera to:
- Kołki 5 i 6 mają wartości preskalera 1, 8, 64, 256 i 1024
- Piny 9 i 10 mają wartości preskalera 1, 8, 64, 256 i 1024
- Piny 3 i 11 mają wartości preskalera 1, 8, 32, 64, 128, 256 i 1024
Różne kombinacje dają różne częstotliwości w danym pinie PWM. Zauważ, że zegar 2 (związany z pinami 3 i 11) ma więcej dostępnych wartości preskalera, co skutkuje większą liczbą dostępnych częstotliwości.
Dlaczego zegar 2 jest inny, to osobne pytanie.
Edycja: Oto lista możliwych częstotliwości PWM na pin (z tego artykułu ):
Dla styków 6 i 5 (OC0A i OC0B):
- Jeśli TCCR0B = xxxxx001, częstotliwość wynosi 64 kHz
- Jeżeli TCCR0B = xxxxx010, częstotliwość wynosi 8 kHz
- Jeśli TCCR0B = xxxxx011, częstotliwość wynosi 1 kHz (jest to wartość domyślna z programu ładującego Diecimila)
- Jeśli TCCR0B = xxxxx100, częstotliwość wynosi 250 Hz
- Jeśli TCCR0B = xxxxx101, częstotliwość wynosi 62,5 Hz
Dla styków 9, 10, 11 i 3 (OC1A, OC1B, OC2A, OC2B):
- Jeśli TCCRnB = xxxxx001, częstotliwość wynosi 32 kHz
- Jeżeli TCCRnB = xxxxx010, częstotliwość wynosi 4 kHz
- Jeśli TCCRnB = xxxxx011, częstotliwość wynosi 500 Hz (jest to wartość domyślna z programu ładującego Diecimila)
- Jeśli TCCRnB = xxxxx100, częstotliwość wynosi 125 Hz
- Jeżeli TCCRnB = xxxxx101, częstotliwość wynosi 31,25 Hz
TCCRnB
to miejsce, w którym ustawiasz bity preskalera dla timera n
, zastępując n
je 0, 1 lub 2, w zależności od timera, który chcesz ustawić. Jeśli nadal nie masz pewności co do operacji bitowych, przeczytaj ten samouczek matematyki bitowej .
Moje źródła:
Zauważ, że wydaje się, że w tych źródłach istnieje rozbieżność co do tego, czy piny 9 i 10 zachowują się tak samo jak 5 i 6 lub 3 i 11, ale i tak rozumiesz. Czytam dane, aby dowiedzieć się, co jest poprawne, czy też jest to różnica między tablicami.