1樓:匿名使用者
我也遇到這樣的問題。沒人給出答案,我來說一下吧。(主要是針對v3編譯c)
根據holtek_c_compiler_v3_faq(950).pdf的描述,v3不保證編譯後的指令符合eeprom寫入順序。根據bs86的資料手冊,wren 和 wr一定要符合順序。
我編譯後的指令出現的是lset wren以及lset wr,這個就出問題了。晶片需要的是set。
解決方法是根據官方faq的描述
"5.5 對於寫 eeprom 有限制的 mcu ( 需連續 set wren, wr, flag),如何使用
v3 寫 eeprom?"
下面是**
//refer to holtek_c_compiler_v3_faq(950).pdf
typedef structiar_bits;
define_sfr(iar_bits, iar1, 0x02);
#define iar1_3 iar1.bit3
#define iar1_2 iar1.bit2
#define iar1_1 iar1.bit1
#define iar1_0 iar1.bit0
...uint8_t bkup;
_eea = u8addr;
_eed = u8newdata;
_mp1l = 0x40;
bkup = _mp1h;
_mp1h = 0x01;
_emi = 0;
iar1_3 = 1;
iar1_2 = 1;
_emi = 1;
while(iar1_2)
_iar1 = 0;
_mp1h = bkup;
...官方的解決方案產生的**跟資料手冊中的一直:
;129 iar1_3 = 1;
0d0d 3182 set __iar1[0].3 《以前這裡是lset wren
;130 iar1_2 = 1;
0d0e 3102 set __iar1[0].2 《以前這裡是lset wr
2樓:匿名使用者
eec 位於 sector 1 中,只能間接訪問。樓主再看看手冊吧
3樓:匿名使用者
沒有切換bank,eec在bank1
4樓:電子瘋人
是不是沒有擦除eeprom?
at89s51微控制器內部包含哪些主要邏輯功能部件各部分的功
微控制器 microcontrollers 是一種bai積體電路晶片,du是採用zhi超大規模積體電路技術把具有dao資料處理能回 力的 處理器答cpu 隨機儲存器ram 只讀儲存器rom 多種i o口和中斷系統 定時器 計數器等功能 可能還包括顯示驅動電路 脈寬調製電路 模擬多路轉換器 a d轉換...