Właśnie na to wpadłem. Program steruje 4 serwami w przerwaniu, więc trzeba ustawić prescaler i tu mi się zrodziło takie pytanie:
Jest dana część kodu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
I tak, procesor jest taktowany 16MHz, więc liczę sobie preskaler według takiej zasady:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
No ale przecież procesor jest taktowany 16MHz więc:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jest to timer 16-bit, więc wiadomo że zakres musi się zmieścić w 0-65335. W związku z tym najlepszym rozwiązaniem tutaj będzie prescaler = 8 i widełki 0-39999, ponieważ wtedy otrzymam najwyższą dokładność. Czy mam rację? Bo wszędzie rozwiązanie tego widziałem 0-19999.
No ale ok, matematyka nie kłamie... Sprawdzam sobie w nocie Atmegi644 i widzę:

Co od razu każe mi zmieniać bit CS10 na CS11 w rejestrze TCCR1B. Robię dalej, przeliczam zakresy i powstaje taki kawałek kodu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
I nie działa... A przecież powinno... Czy ktoś mądrzejszy ode mnie może mnie nakierować, gdzie zrobiłem babola tudzież czy moje rozumowanie jest złe???