日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]//--------------------------------------------------------//EEPROM字節(jié)寫程序 //功能: 寫一個(gè)字節(jié)到內(nèi)部EEPROM //入口: EEADR =地址 // EEDATA =數(shù)據(jù) //--------------------------------------------------

//--------------------------------------------------------

//EEPROM字節(jié)寫程序
//功能: 寫一個(gè)字節(jié)到內(nèi)部EEPROM
//入口: EEADR =地址
// EEDATA =數(shù)據(jù)
//--------------------------------------------------------
void write_eeprom ( void )
{
// while ( WR ) //等待上一次寫操作結(jié)束
// {
// asm ("clrwdt"); //喂狗
// }
EEPGD = 0 ; //設(shè)置訪問(wèn)目標(biāo)為EEPROM
WREN = 1 ; //允許進(jìn)行寫操作
GIE = 0 ; //禁止中斷
EECON2 = 0x55 ;
EECON2 = 0xAA ;
WR = 1 ; //啟動(dòng)一次寫操作
GIE = 1 ; //使能中斷
WREN = 0 ; //關(guān)閉寫操作
}

//--------------------------------------------------------
//EEPROM字節(jié)讀程序
//功能: 從內(nèi)部EEPROM讀一個(gè)字節(jié)
//入口: EEADR =地址
//出口: EEDATA =數(shù)據(jù)
//--------------------------------------------------------
void read_eeprom( void )
{
EEPGD = 0 ; //設(shè)置訪問(wèn)目標(biāo)為EEPROM
RD = 1 ; //啟動(dòng)一次讀操作
}


//--------------------------------------------------------
//FLASH字節(jié)寫程序
//功能: 寫一個(gè)字節(jié)到內(nèi)部FLASH
//入口: EEADRH,EEADR =地址
// EEDATH,EEDATA =數(shù)據(jù)
//--------------------------------------------------------
void write_flash ( void )
{
EEPGD = 1 ; //設(shè)置訪問(wèn)目標(biāo)為FLASH
WREN = 1 ; //允許進(jìn)行寫操作
GIE = 0 ; //禁止中斷
EECON2 = 0x55 ;
EECON2 = 0xAA ;
WR = 1 ; //啟動(dòng)一次寫操作
asm ("nop") ;
asm ("nop") ;
GIE = 1 ; //使能中斷
WREN = 0 ; //關(guān)閉寫操作
}

//--------------------------------------------------------
//FLASH字節(jié)讀程序
//功能: 從內(nèi)部FLASH讀一個(gè)字節(jié)
//入口: EEADRH,EEADR =地址
//出口: EEDATH,EEDATA =數(shù)據(jù)
//--------------------------------------------------------
void read_flash( void )
{
EEPGD = 1 ; //設(shè)置訪問(wèn)目標(biāo)為FLASH
RD = 1 ; //啟動(dòng)一次讀操作
asm ("nop") ;
asm ("nop") ;

}

這是網(wǎng)上找來(lái)的程序:

用我寫的這個(gè)吧void WriteEE(unsigned char addr,unsigned char data) //寫EEPROM
{
do{;}
while(WR==1); //上一次寫操作是否完成
EEADR=addr; //EEPROM地址
EEDATA=data; //準(zhǔn)備寫入EEPROM的數(shù)據(jù)
EEPGD=0; //指向EEPROM數(shù)據(jù)儲(chǔ)存器
WREN=1; //使能寫操作
EECON2=0x55; //設(shè)置通用參數(shù)
EECON2=0xAA; //設(shè)置通用參數(shù)
WR=1; //開始寫
do{;}
while(WR==1); //等待寫操作完成
WREN=0; //禁止寫操作
}
//
unsigned char ReadEE(unsigned char addr) //讀EEPROM
{
unsigned char num;
do{;}
while(RD==1); //上一次讀操作是否完成
EEADR=addr; //EEPROM地址為00H
EEPGD=0; //指向EEPROM數(shù)據(jù)儲(chǔ)存器
RD=1; //開始讀
do{;}
while(RD==1); //等待讀操作完成
num=EEDATA; //讀出
return(num); //返回讀出的數(shù)
}

說(shuō)明:兩個(gè)程序基本步驟是一致的。個(gè)中的差別是:

1、網(wǎng)上找來(lái)的這個(gè)程序中更嚴(yán)密,其中增加了對(duì)WR和RD標(biāo)志位的判別,缺點(diǎn)是實(shí)時(shí)性較差。

2、而匠人的程序中沒(méi)有這個(gè)對(duì)WR和RD標(biāo)志位的判別。那是因?yàn)榻橙藢⒃撆袆e的動(dòng)作放在了上級(jí)程序中。也就是說(shuō),匠人在調(diào)用write_eeprom 函數(shù)之前,會(huì)先行判斷WR。確信上次寫操作已經(jīng)結(jié)束后,才去調(diào)用新一次的寫操作。這樣做的目的是為了系統(tǒng)的實(shí)時(shí)性。

其實(shí),事后匠人才發(fā)現(xiàn)自己寫EEPROM讀寫程序,這樣做是沒(méi)有太大的必要的。因?yàn)樵赑ICC系統(tǒng)自帶“PIC.H”文件中,已經(jīng)內(nèi)嵌了這兩個(gè)函數(shù)。倒塌!

以下是“ PIC.H”文件中的內(nèi)容:

/***********************************************************************/
/****** EEPROM memory read/write macros and function definitions *******/
/***********************************************************************/
/* NOTE WELL:

The macro EEPROM_READ() is NOT safe to use immediately after any
write to EEPROM, as it does NOT wait for WR to clear. This is by
design, to allow minimal code size if a sequence of reads is
desired. To guarantee uncorrupted writes, use the function
eeprom_read() or insert
while(WR)continue;
before calling EEPROM_READ().
*/
#if EEPROM_SIZE > 0
#ifdef __FLASHTYPE
// macro versions of EEPROM write and read
#define EEPROM_WRITE(addr, value)
do{
while(WR)continue;EEADR=(addr);EEDATA=(value);
EECON1&=0x7F;CARRY=0;if(GIE)CARRY=1;GIE=0;
WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0;
if(CARRY)GIE=1;
}while(0)
#define EEPROM_READ(addr) ((EEADR=(addr)),(EECON1&=0x7F),(RD=1),EEDATA)
#else // else doesn't write flash
#define EEPROM_WRITE(addr, value)
do{
while(WR)continue;EEADR=(addr);EEDATA=(value);
CARRY=0;if(GIE)CARRY=1;GIE=0;
WREN=1;EECON2=0x55;EECON2=0xAA;WR=1;WREN=0;
if(CARRY)GIE=1;
}while(0)
#define EEPROM_READ(addr) ((EEADR=(addr)),(RD=1),EEDATA)
#endif

/* library function versions */
extern void eeprom_write(unsigned char addr, unsigned char value);
extern unsigned char eeprom_read(unsigned char addr);
#endif // end EEPROM routines

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

Sept. 10, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《全球電動(dòng)車逆變器市場(chǎng)數(shù)據(jù)》,2025年第二季受惠純電動(dòng)車(BEV)銷售成長(zhǎng),全球電動(dòng)車(注1)牽引逆變器裝機(jī)量達(dá)766萬(wàn)臺(tái),年增19%。...

關(guān)鍵字: 增程式電動(dòng)車 SiC 牽引逆變器

Sept. 8, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NVIDIA(英偉達(dá)) Blackwell平臺(tái)規(guī)?;鲐洠约氨泵繡SP業(yè)者持續(xù)擴(kuò)大布局General Server(通用型...

關(guān)鍵字: SSD DDR4 服務(wù)器

Sept. 4, 2025 ---- Apple(蘋果)即將發(fā)布iPhone 17、iPhone 17 Air(暫名)、iPhone 17 Pro及Pro Max四款旗艦新機(jī),除了外觀辨識(shí)度升級(jí),處理器性能、散熱和拍攝功...

關(guān)鍵字: iPhone 16 A19處理器 折疊機(jī)

Sept. 3, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《2025近眼顯示市場(chǎng)趨勢(shì)與技術(shù)分析》報(bào)告,2025年隨著國(guó)際品牌陸續(xù)推出AR眼鏡原型,以及Meta預(yù)計(jì)在近期發(fā)布AR眼鏡Celeste,市...

關(guān)鍵字: AR眼鏡 OLED

Sept. 2, 2025 ---- TrendForce集邦咨詢表示,2025年第二季DRAM產(chǎn)業(yè)因一般型DRAM (Conventional DRAM)合約價(jià)上漲、出貨量顯著增長(zhǎng),加上HBM出貨規(guī)模擴(kuò)張,整體營(yíng)收為3...

關(guān)鍵字: DRAM 智能手機(jī) ASP

Sept. 1, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季因中國(guó)市場(chǎng)消費(fèi)補(bǔ)貼引發(fā)的提前備貨效應(yīng),以及下半年智能手機(jī)、筆電/PC、Server新品所需帶動(dòng),整體晶圓代工產(chǎn)能利用率與出貨...

關(guān)鍵字: 晶圓代工 智能手機(jī) 筆電

Aug. 28, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NAND Flash產(chǎn)業(yè)雖面臨平均銷售價(jià)格(ASP)小幅下滑,所幸原廠減產(chǎn)策略緩解供需失衡,疊加中、美兩大市場(chǎng)政策推動(dòng),整體...

關(guān)鍵字: NAND Flash SSD AI

Aug. 26, 2025 ---- NVIDIA(英偉達(dá))近日推出的Jetson Thor被視為機(jī)器人的物理智慧核心,以Blackwell GPU、128 GB記憶體堆疊出2070 FP4 TFLOPS AI算力,是前...

關(guān)鍵字: 機(jī)器人 大型語(yǔ)言模型 AI算力

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機(jī)柜式服務(wù)器于2025年放量出貨,云端業(yè)者加速升級(jí)AI數(shù)據(jù)中心架構(gòu),促使液冷技術(shù)從早期試點(diǎn)邁...

關(guān)鍵字: AI 數(shù)據(jù)中心 服務(wù)器

除了充電電路外,鋰電池的放電過(guò)程也需要保護(hù)。鋰電池的放電電壓不能低于3.0V,否則電池壽命會(huì)大幅縮短。為了實(shí)現(xiàn)這一保護(hù),工程師們?cè)O(shè)計(jì)了DW01芯片與8205 MOS管的電路組合。DW01芯片能夠監(jiān)控鋰電池的放電電壓和電流...

關(guān)鍵字: 鋰電池 電池
關(guān)閉