⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rwe2prom.c

📁 手操器
💻 C
字号:
#include <iom8v.h>
#include <macros.h>
#include "eeprom.h"

extern union{
	unsigned char	E2PROMBuffer[4];
	struct{
	unsigned int	WritedVariable;
	unsigned char	Xor1;
	unsigned char	Xor2;	
	}SingleVariable;
}BufferForWriteE2PROM;

//写一个无符号整型数到E2PROM
//已含有校验。
void	WriteUnsignedIntToE2PROM(unsigned int WritedVariable,unsigned int E2PROMAddr)
{
	BufferForWriteE2PROM.SingleVariable.WritedVariable=WritedVariable;
	BufferForWriteE2PROM.E2PROMBuffer[2]=0x55;
	BufferForWriteE2PROM.E2PROMBuffer[3]=BufferForWriteE2PROM.E2PROMBuffer[0]
				^BufferForWriteE2PROM.E2PROMBuffer[1];

	EEPROMWriteBytes(E2PROMAddr,BufferForWriteE2PROM.E2PROMBuffer,4);
}

//写一个无符号字符到E2PROM
//已含有校验。
void	WriteUnsignedCharToE2PROM(unsigned char WritedVariable,unsigned int E2PROMAddr)
{

	BufferForWriteE2PROM.E2PROMBuffer[0]=WritedVariable;
	BufferForWriteE2PROM.E2PROMBuffer[1]=0x55;
	BufferForWriteE2PROM.E2PROMBuffer[2]=0x55;
	BufferForWriteE2PROM.E2PROMBuffer[3]=BufferForWriteE2PROM.E2PROMBuffer[0]
				^BufferForWriteE2PROM.E2PROMBuffer[1];

	EEPROMWriteBytes(E2PROMAddr,BufferForWriteE2PROM.E2PROMBuffer,4);
}

//从E2PROM读一页,并校验其是否有效数据。
//If The Function Return 0,It Means That The Data In This Page Are Invalid.
//If The Function Return 1,It Means That The Data In This Page Are Valid,And The Data Are In BufferForWriteE2PROM.
unsigned char ReadAPageFromE2PROMAndCheckIt(unsigned int E2PROMAddr)
{
	  
	EEPROMReadBytes(E2PROMAddr,BufferForWriteE2PROM.E2PROMBuffer,4);
	if(	BufferForWriteE2PROM.E2PROMBuffer[2]!=0x55)
		return 0;
	BufferForWriteE2PROM.E2PROMBuffer[2]=BufferForWriteE2PROM.E2PROMBuffer[0]
				^BufferForWriteE2PROM.E2PROMBuffer[1];
	if( BufferForWriteE2PROM.E2PROMBuffer[2]==BufferForWriteE2PROM.E2PROMBuffer[3] )
		return 1;
	else	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -