Pamięć nieulotna.pdf

(259 KB) Pobierz
Programowanie mikrokontrolerów Pami¦ci nieulotne
Programowaniemikrokontrolerów
Pami¦cinieulotne
MarcinEngelMarcinPeczarski
17grudnia2008
111691350.005.png
Dost¦pnepami¦cinieulotne
I ATmega16posiadawewn¦trzn¡pami¦¢danychEEPROM.
I ATmega16posiadawewn¦trzn¡pamie¢programuFLASH.
I Wzestawieuruchomieniowymjestzainstalowanazewn¦trzna
pami¦¢danychFLASH.
111691350.006.png
Wewn¦trznapami¦¢danychEEPROM
I WATmega16ma512bajtów.
I Producentgwarantujeminimum100000cyklizapisu.
I Odczytwstrzymujeprocesorna4cyklezegara.
I Zapiswstrzymujeprocesorna2cyklezegara.
I Zapispozainicjowaniutrwaok.8,5ms.
I Pami¦¢jestwidzianajakoukładperyferyjnyprzezrejestry
wej±cia-wyj±cia:
I EEARH,EEARL–zawieraj¡adresdoodczytulubzapisu,
I EEDR–zawieraodczytanybajtlubbajtprzeznaczonydo
zapisania,
I EECR–sterujeprac¡pami¦ci.
111691350.007.png
RejestrEECR
EEPROMControlRegister
7 6 5 4 3 2 1 0
– – – – EERIEEEMWEEEWEEERE
I EERIE–uaktywniaprzerwaniegotowo±cidozapisu.
Przerwaniejestzgłaszanewsposóbci¡gły,gdybitEEWEma
warto±¢0.
I EEMWE–rozpoczynaprocedur¦zapisu.Wceluwykonania
zapisunale»ywci¡gu4cyklizegaraodustawieniabitu
EEMWEustawi¢bitEEWE.
I EEWE–startujezapis.Bitpozostajeustawionya»do
zako«czeniaproceduryzapisu.
I EERE–startujeodczyt.
111691350.008.png 111691350.001.png 111691350.002.png 111691350.003.png
Procedurazapisu
I Zaczynamyjakzwykle.
EEPROM_write:
pushr19
I Czekamynazako«czeniepoprzedniegozapisu.
EEPROM_write_wait:
sbicEECR,EEWE
rjmpEEPROM_write_wait
I Opcjonalnieczekamynazako«czenieoperacjinapami¦ci
programu.
EEPROM_write_FLASH_wait:
inr19,SPMCR
sbrcr19,SPMEN
rjmpEEPROM_write_FLASH_wait
I Zapisujemyadresidane.
outEEARH,r17
outEEARL,r16
outEEDR,r18
111691350.004.png
Zgłoś jeśli naruszono regulamin