(04-07-2019, 21:35)Robson Kerman napisał(a): Do sześciu sekund się nie da, ponieważ ICR1 może wynosić najwyżej 65535 (10bit).Nie chce mi się grzebać w manualach więc nie wiem czy w każdym AVR PWM na timerze 1 może pracować w trybie 16-bit ale w Mega328 na pewno tak:
Cytat:16. 16-bit Timer/Counter1 with PWMa to pozwala uzyskać czasy do ponad 4 sekund przy taktowaniu 16MHz i preskalerze 1024. Zmniejszając taktowanie do 8MHz czas zwiększy się do ponad 8 sekund z rozdzielczością 1,28ms.
16.1 Features
• True 16-bit Design (i.e., Allows 16-bit PWM)
Nie byłbym sobą, jak bym nie porównał AVR do ARM. W STM 32, nawet na 16-bit timerze, można uzyskać przy taktowaniu 16MHz, czasy do 268 sekund z rozdzielczością ok 4ms (preskaler można ustawić w zakresie 1..65535). Sygnał taktujący można dodatkowo podzielić przez 2 lub 4 wydłużając czas jeszcze bardziej. Wiele STM32 ma timery 32-bit ale w każdym, można dwa 16-bit połączyć w jeden 32-bit (w AVR tylko robiąc połączenie na zewnątrz układu). Timer 32-bit pozwala przy taktowaniu 180MHz, uzyskać czasy do 18dni z rozdzielczością niecałe 400ns a z dodatkowym podzielnikiem przez 2 lub 4 - sami policzcie.
Jak więc widać, nawet w banalnym projekcie, AVR wymaga większych nakładów czasu pracy nad softem aby uzyskać efekt, który w STM32 uzyskuje się kilkoma linijkami kodu.