📄 eeprom.c
字号:
#include"XQG.h"
#include <intrins.h>
#define IAP_READ 0x01 /* 字节读数据存储区 */
#define IAP_WRITE 0x02 /* 字节编程数据存储区 */
#define IAP_ERASER 0x03 /* 扇区擦除数据存储区 */
#define WAIT_TIME 0x02
unsigned char byte_read(unsigned int byte_addr)
{
unsigned char lvc_data_tmp;
ISP_ADDRH = (unsigned char)(byte_addr >> 8);
ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
EA = 0; /* 关中断 */
ISP_CONTR = WAIT_TIME;
ISP_CONTR = ISP_CONTR | 0x80;
ISP_CMD = IAP_READ; /* 0000,0001 */
ISP_TRIG = 0x46;
ISP_TRIG = 0xb9;
_nop_();
lvc_data_tmp=ISP_DATA;
ISP_CONTR = 0;
ISP_CMD = 0;
ISP_TRIG = 0;
ISP_ADDRH = 0;
ISP_ADDRL = 0;
EA = 1; /* 开中断 */
return (lvc_data_tmp);
}
void byte_write(unsigned int byte_addr, unsigned char indata)
{
ISP_DATA = indata;
ISP_ADDRH = (unsigned char)(byte_addr >> 8);
ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);
EA = 0; /* 关中断 */
ISP_CONTR = WAIT_TIME;
ISP_CONTR = ISP_CONTR | 0x80;
ISP_CMD = IAP_WRITE; /* 0000,0001 */
ISP_TRIG = 0x46;
ISP_TRIG = 0xb9;
_nop_();
ISP_CONTR = 0;
ISP_CMD = 0;
ISP_TRIG = 0;
ISP_ADDRH = 0;
ISP_ADDRL = 0;
EA = 1; /* 开中断 */
}
void Sector_eraser(unsigned int byte_addr)
{
ISP_ADDRH = (unsigned char)(byte_addr >> 8);
ISP_ADDRL = 0x00;
EA = 0; /* 关中断 */
ISP_CONTR = WAIT_TIME;
ISP_CONTR = ISP_CONTR | 0x80;
ISP_CMD = IAP_ERASER; /* 0000,0001 */
ISP_TRIG = 0x46;
ISP_TRIG = 0xb9;
_nop_();
ISP_CONTR = 0;
ISP_CMD = 0;
ISP_TRIG = 0;
ISP_ADDRH = 0;
ISP_ADDRL = 0;
EA = 1; /* 开中断 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -