Z powyższego wynika że chyba nie do końca wiesz co i jak.
Timer zupełnie nie ma wpływu na częstotliwość taktowania uC. Jego ustawienia są poczyniane w taki a nie inny sposób by częstotliwość taktowania wyrzucić na pin procka by można ją było analizatorem zmierzyć. Preskaler timera się ustawia tylko po to by ta częstotliwość nie była za dużo bo analizator ma skończoną szybkość próbkowania więc im częstotliwość uC będzie bliższa częstotliwości próbkowania analizatora tym pomiar będzie bardziej przekłamany. Dla tego w Mirka pomocniku wogule nie ma preskalera 1 tylko 256 i 1024.
Co do kalibracji procesora to tu również należy rozróżnić dwie rzeczy, jedna to preskaler systemowego wewnętrznego oscylatora RC, druga to układ kalibracji wewnętrznego oscylatora RC.
Preskaler CLKPSR powoduje podział wbudowanego generatora RC przez 1,2,4,8,16,32,64,128,256. A wartość nominalna to 8Mhz, ustawienie domyślne preskalera to 8 więc procesor domyślnie taktowany jest 1MHz.
Jeśli chcesz taktować procesor 31.25kHz to preskaler musisz ustawić na 256 czyli
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
A co do kalibracji to widzisz wewnętrzny generator RC nie jest super dokładnym źródłem taktowania, jego częstotliwość również zależy od napięcia zasilania, temperatury i pewnie jeszcze wielu innych czynników. Producent kalibruje ten generator na 8MHz ale robi to w pewnych ściśle określonych warunkach. Może się okazać że Twój egzemplarz procka u Ciebie na stole będzie bardzo odbiegał od idealnego 8MHz. Producent to przewidział i dał narzędzie w postaci układu kalibracji którym steruje się poprzez rejestr OSCCAL. Wpisanie do niego wartości bliższych 0x00 obniża częstotliwość taktowania a bliższych 0xFF podwyższa częstotliwość taktowania. Nie zawsze jednak trzeba w tym rejestrze grzebać by dostroić zegar do 8MHz, czasem programista celowo może chcieć obniżyć albo podwyższyć taktowanie procesora.
Podsumowując jeśli chcesz skalibrować zegar na równiutkie 31,25kHz to możesz to zrobić albo na fabrycznym taktowaniu i przy fabrycznym CLKPSK (czyli wtedy wogule nic nie zapisujesz przy inicjalizacji do tego rejestru) i tak zmieniasz OSCCAL by Mirkowy pomocnik wyliczył wartość najbliższą 1MHz.
Albo też od razu ustawić CLCPSK = 0x08 i wtedy dostrajać wartość OSCCAL tak by pomocnik wyliczył wartość najbliższą 31250.
Póżniej w docelowym układzie w którym wyląduje ten egzemplarz uC w programie wpisujesz uzyskaną wartość OSCCAL tak by przy każdym uruchamianiu układu wartość ta była ładowana (tak musi być ona ładowana przy każdym starcie ponieważ ten rejestr jak i wszystkie pozostałe leżą w obszarze ulotnej pamięci RAM!)