w12_misc.pdf

(285 KB) Pobierz
Programowanie mikrokontrolerów
Resetowanie, zarządzanie energią, taktowanie,
bity konfiguracyjne
Marcin Engel
Marcin Peczarski
9 grudnia 2008
Rejestr MCUCSR
MCU Control and Status Register
7
6
5
4
3
2
1
0
JTRF WDRF BORF EXTRF PORF
Zawiera informację o przyczynie resetu mikrokontrolera:
JTRF – interfejs JTAG,
WDTR – watchdog,
BORF – spadek napięcia zasilania,
EXTRF – wyprowadzenie RESET,
PORF – włączenie zasilania.
Bity JTRF, WDTR, BORF, EXTRF są zerowane po włączeniu
zasilania.
Bit PORF jest ustawiany po włączeniu zasilania.
Każdy z tych bitów można wyzerować przez wpisanie zera.
Watchdog
Służy do wyprowadzania mikrokontrolera ze stanu zawieszenia.
Nie zwalnia od pisania poprawnego kodu!
Posiada swój własny oscylator o częstotliwości ok. 1 MHz.
Licznik jest resetowany, gdy:
zostanie wykonana instrukcja
WDR,
mikrokontroler zostanie zresetowany.
Gdy licznik osiąga wartość maksymalną, to mikrokontroler jest
resetowany.
Rejestr WDTCR
Watchdog Timer Control Register
7
6
5
4
3
2
1
0
WDTOE WDE WDP2 WDP1 WDP0
WDTOE – używany w procedurze wyłączania układu
watchdog (patrz następny slajd).
WDE – służy do włączania i wyłączania układu watchdog.
WDP2, WDP1, WDP0 – determinują czas zliczania. Jeśli
t
jest wartością zapisaną w tych bitach, to czas ten wynosi
w przybliżeniu
2
t+14
µs.
Minimalny możliwy do uzyskania czas wynosi ok. 16 ms.
Maksymalny możliwy do uzyskania czas wynosi ok. 2 s.
Wyłączanie układu watchdog
Aby wyłączyć układ watchdog należy wykonać następującą
procedurę.
wdr
in r16, WDTCR
ori r16, 1 << WDTOE | 1 << WDE
out WDTCR, r16
ldi r16, 0
out WDTCR, r16
Ma to na celu zapobieżenie przypadkowemu wyłączeniu.
Zgłoś jeśli naruszono regulamin