eeprom.c

来自「把原先的快走丝设备改进」· C语言 代码 · 共 79 行

C
79
字号
#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 + =
减小字号Ctrl + -
显示快捷键?