eeprom.c

来自「这是一个正确的飞思卡尔智能车程序,希望对比赛有帮助!!!」· C语言 代码 · 共 47 行

C
47
字号
/**********************************************************************
 * 文 件 名:eeprom.c
 * 功    能:EEPROM模块
 * 日    期:2007年5月6日
 **********************************************************************/
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
 
//初始化EEPROM,设置16MHZ晶振下分频系数使ECLK为200KHZ
void  IintEEPROM(void) 
{
      ECLKDIV = 0x4f;
}
 

//向EEPROM的某个地址写入16bit数据,地址范围 0-511 
void	WriteEEPROM(word data,word addr) 
{
    word  * p;//EEPROM地址指针
    p = (word *)(0x0800 + addr * 4);//取得要操作的实际地址
    *p=0xff;
    ECMD=0x40;
do
   {  
   while(ESTAT_CBEIF==0);//wait until buffer is empty
    ESTAT_PVIOL=1 ;
    ESTAT_ACCERR=1 ;
    *p = data;
    ECMD = 0x20;//启动编程命令
    ESTAT_CBEIF = 1;//启动操作
   }
    while(ESTAT_PVIOL==1||ESTAT_ACCERR==1);
    while(ESTAT_CCIF==0);//等待操作完成 
}
    
//读取EEPROM的某个地址的16bit数据,地址范围 0-511
word ReadEEPROM(word addr)
{
    word *p;//EEPROM地址指针
    p = (word *)(0x0800 + addr * 4);//取得要操作的实际地址
    return *p;
}




⌨️ 快捷键说明

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