📄 rwe2prom.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 + -