Witam serdecznie.
Rozpocząłem jakiś czas temu zabawę z mikrokontrolerem ATmega.
Posiadam model ATmega32-16PU. Buduję zegar czasu rzeczywistego. Chciałem do tego wykorzystać przerwania z wbudowanego timera (przepełnienie).
Po wielu nieudanych próbach synchronizacji ATmegi z rzeczywistym czasem postanowiłem policzyć taktowanie swojego mikrokontrolera.
Podane przez producenta i ustawione przeze mnie 16MHz nie wychodzi mi z obliczeń.
Na płytce z kontrolerem posiadam 8 diod led - wykorzystuję je do pomiaru.
-ustawiam timer w tryb FCPU/8
-zliczam przepełnienia timera (timer 8-bitowy)
-gdy dochodzę do 60000 zapalam kolejną diodę
Zapalenia 8 diod zajmuje mi ~36.8 sekund (sprawdzone kilkukrotnie).
Moim zdaniem czasie pomiaru zegar ATmegi powinien uderzyć:
8 * 256 * 60 000 * 8 = 983 040 000 razy.
Po podzieleniu przez czas 36.8 wychodzi:
26 713 043 Hz (~26.5 MHz).
Czy z moją ATmegą jest coś nie tak czy ja nie potrafię ustawić odpowiedniego taktowania? Ewentualnie może źle coś teraz liczę?
Pozdrawiam wszystkich i z góry dziękuję za pomoc
Kod programu:
Rozpocząłem jakiś czas temu zabawę z mikrokontrolerem ATmega.
Posiadam model ATmega32-16PU. Buduję zegar czasu rzeczywistego. Chciałem do tego wykorzystać przerwania z wbudowanego timera (przepełnienie).
Po wielu nieudanych próbach synchronizacji ATmegi z rzeczywistym czasem postanowiłem policzyć taktowanie swojego mikrokontrolera.
Podane przez producenta i ustawione przeze mnie 16MHz nie wychodzi mi z obliczeń.
Na płytce z kontrolerem posiadam 8 diod led - wykorzystuję je do pomiaru.
-ustawiam timer w tryb FCPU/8
-zliczam przepełnienia timera (timer 8-bitowy)
-gdy dochodzę do 60000 zapalam kolejną diodę
Zapalenia 8 diod zajmuje mi ~36.8 sekund (sprawdzone kilkukrotnie).
Moim zdaniem czasie pomiaru zegar ATmegi powinien uderzyć:
8 * 256 * 60 000 * 8 = 983 040 000 razy.
Po podzieleniu przez czas 36.8 wychodzi:
26 713 043 Hz (~26.5 MHz).
Czy z moją ATmegą jest coś nie tak czy ja nie potrafię ustawić odpowiedniego taktowania? Ewentualnie może źle coś teraz liczę?
Pozdrawiam wszystkich i z góry dziękuję za pomoc
Kod programu:
Kod: C / C++
