新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR內(nèi)部EEPROM讀寫范例

AVR內(nèi)部EEPROM讀寫范例

作者: 時(shí)間:2013-12-12 來源:網(wǎng)絡(luò) 收藏

/***********************************************

**** ***

**** 編譯器:WIN20050214 ***

***********************************************/

/*

本程序簡(jiǎn)單的示范了如何使用ATMEGA16的EERPOM

EEPROM的簡(jiǎn)介

EEPROM的寫操作

EEPROM的讀操作

出于簡(jiǎn)化程序考慮,各種數(shù)據(jù)沒有對(duì)外輸出,學(xué)習(xí)時(shí)建議使用JTAG ICE硬件仿真器。

在打開調(diào)試文件到JTAG后,打開Debug -> JTAG ICE Options菜單,然后在JTAG ICE Properties中點(diǎn)擊Dbug頁面,將preserve eeprom選項(xiàng)選中。 在每次仿真調(diào)試時(shí)候,就保護(hù)EEPROM內(nèi)容了。否則,會(huì)按照默認(rèn)設(shè)置擦除EEPROM的內(nèi)容。

由于定義了EEPROM變量,JTAG調(diào)試時(shí)會(huì)詢問是否初始化EEPROM,請(qǐng)選擇[否],EEPROM的數(shù)據(jù)也可以在view->memory,選Eeprom窗口下察看

*/

#i nclude

#i nclude

////時(shí)鐘定為內(nèi)部1MHz,F_CPU=1000000 時(shí)鐘頻率對(duì)程序的運(yùn)行沒什么影響

/*

GCC(avr-libc)里面自帶了EEPROM的讀寫函數(shù)。

下面列舉部分常用函數(shù)(原型)

#define eeprom_is_ready() bit_is_clear(EECR, EEWE)

檢測(cè)EEPROM是否準(zhǔn)備好。OK返回1(返回EEWE位)

#define eeprom_busy_wait() do {} while (!eeprom_is_ready())

等待EEPROM操作完成

extern uint8_t eeprom_read_byte (const uint8_t *addr);

讀取指定地址的一個(gè)字節(jié)8bit的EEPROM數(shù)據(jù)

extern uint16_t eeprom_read_word (const uint16_t *addr);

讀取指定地址的一個(gè)字16bit的EEPROM數(shù)據(jù)

extern void eeprom_read_block (void *buf, const void *addr, size_t n);

讀取由指定地址開始的指定長度的EEPROM數(shù)據(jù)

extern void eeprom_write_byte (uint8_t *addr, uint8_t val);

向指定地址寫入一個(gè)字節(jié)8bit的EEPROM數(shù)據(jù)

extern void eeprom_write_word (uint16_t *addr, uint16_t val);

向指定地址寫入一個(gè)字16bit的EEPROM數(shù)據(jù)

extern void eeprom_write_block (const void *buf, void *addr, size_t n);

由指定地址開始寫入指定長度的EEPROM數(shù)據(jù),但不支持部分AVR,原文如下:

ote This library will e not work with the following devices since these

devices have the EEPROM IO ports at different locations:

- AT90CAN128

- ATmega48

- ATmega88

- ATmega165

- ATmega168

- ATmega169

- ATmega325

- ATmega3250

- ATmega645

- ATmega6450


上一頁 1 2 3 下一頁

關(guān)鍵詞: AVR 內(nèi)部EEPROM 讀寫范例

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉