Parę dni temu, tuż po publikacji poprzedniego wpisu (na temat zegara PCF8583P) zorientowałem się - przypadkowo, jak to zwykle bywa, ale też na skutek poczynionych obserwacji - że użyłem w układzie prototypowym egzemplarza mikrokontrolera z fusebitami ustawionymi domyślnie. Głównie chodzi tu o bity dotyczące częstotliwości taktowania i używanego generatora. Zaglądając w okienko pokazujące stan fusebitów zauważyłem, że mikrokontroler używa ciągle wewnętrznego generatora 8MHz z podziałem częstotliwości przez 8, czyli jest taktowany przebiegiem o częstotliwości efektywnej 1MHz. Do sprawdzenia stanu fusebitów skłonił mnie pomiar czasu pomiędzy kolejnymi przerwaniami timera nr 1 - skonfigurowałem go w pisanym właśnie programie jako timer, który powinien generować przerwanie co 1 sekundę. Jednak sekunda ta trwała nieco dłużej...
Na obrazku poniżej pokazane zostały prawidłowe wartości fusebitów dla układu taktowanego sygnałem z generatora stabilizowanego zewnętrznym kwarcem 4MHz, czyli takim, pod kątem którego pisałem program z poprzedniego posta.
Oczywiście ustawienia fusebitów są ściśle związane z konfiguracją, założeniami i potrzebami naszego projektu, należy jednak pamiętać o ich wstępnej konfiguracji po wyjęciu nowego procka z szuflady...
W związku ze zmianami w ustawieniach bitów, należy poeksperymentować z linią konfigurującą częstotliwość występowania przerwania timera nr 0 w programie z poprzedniego wpisu - może się okazać, że założona domyślnie częstość odczytów stanu zegara przez I2C jest zbyt duża (niestety, rozmontowałem już układ prototypowy, więc nie za szybko sam to zweryfikuję):
Config Timer0 = Timer , Prescale = 1024
Opis, w miarę dokładny, konfiguracji fusebitów pod kątem wykorzystywanego sposobu taktowania znajdziemy m. in. tutaj: Fuse Bity w mikrokontrolerach AVR. W ogóle strona ta jest godna polecenia jako ciekawe źródło informacji na temat mikrokontrolerów.
Na obrazku poniżej pokazane zostały prawidłowe wartości fusebitów dla układu taktowanego sygnałem z generatora stabilizowanego zewnętrznym kwarcem 4MHz, czyli takim, pod kątem którego pisałem program z poprzedniego posta.
Oczywiście ustawienia fusebitów są ściśle związane z konfiguracją, założeniami i potrzebami naszego projektu, należy jednak pamiętać o ich wstępnej konfiguracji po wyjęciu nowego procka z szuflady...
W związku ze zmianami w ustawieniach bitów, należy poeksperymentować z linią konfigurującą częstotliwość występowania przerwania timera nr 0 w programie z poprzedniego wpisu - może się okazać, że założona domyślnie częstość odczytów stanu zegara przez I2C jest zbyt duża (niestety, rozmontowałem już układ prototypowy, więc nie za szybko sam to zweryfikuję):
Config Timer0 = Timer , Prescale = 1024
Opis, w miarę dokładny, konfiguracji fusebitów pod kątem wykorzystywanego sposobu taktowania znajdziemy m. in. tutaj: Fuse Bity w mikrokontrolerach AVR. W ogóle strona ta jest godna polecenia jako ciekawe źródło informacji na temat mikrokontrolerów.
Komentarze
Prześlij komentarz