打印

PIC18F25K22 EEPROM操作的问题

[复制链接]
2446|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是土匪|  楼主 | 2012-2-27 12:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
根据安装目录下的demo,


void write(void)             // write a byte of data to EEPROM
{
    GIE=0;                    // disable interrupts
    WREN=1;                // enable writes
    EECON2=0x55;       // required sequence for EEPROM update
    EECON2=0xAA;
    WR=1;
    while(WR)continue;
    EEIF=0;
    WREN=0;
    GIE=1;  // re-enable interrupts
}

自己做了个测试函数:
Init_eeprom(void)
{
    EECON1 &= ~0xc0;   //选择操作eeprom数据存储区
}

//
void Test_ee(void)
{
    char data = 0;

    EEADR = 0x00;
   EEDATA=0x20;
    write();
   
    //data=read();
    //Disp_char(data);
}

发现eeprom的数据没有写进去,0XFF.
没发现那里不妥,请知情者指教啊
沙发
Ryanhsiung| | 2012-2-27 13:01 | 只看该作者
你怎么看的?
  IDE里的EEPROM吗,那个可能没更新过来!!

使用特权

评论回复
板凳
我是土匪|  楼主 | 2012-2-27 13:29 | 只看该作者
是IDE里的EEPROM。
同步有读函数,显示结果。

使用特权

评论回复
地板
yewuyi| | 2012-2-27 14:19 | 只看该作者
呵呵,乱搞的EEPROM读写函数当然别指望有好结果。给你一个参考的读写函数:
//-----------------------------------------------------------------------------
//filename: eeprom.c
//Version:  v1.0
//Designer: yezhen
//StartTime:2007.2.7
//EndTime:  
//History:
//-----------------------------------------------------------------------------
#include             "eeprom.h"
//-----------------------------------------------------------------------------
//Location  to  eeprom_address(0x00)
__EEPROM_DATA( 10,  0, 20, 20,  3,  0,-50, 50);
__EEPROM_DATA(  0,  1,  1,  1, 10,  0,  0,  0);
//-----------------------------------------------------------------------------
void                 EEpromWrite(void)
{
if(WriteEeprom){
               if(WR){}
               else{
                   if(Fcase<datalength){
                                       EEADRH=0x00;
                                       EEADRL=Fcase;          //赋EEPROM写入地址
                                       EEDATL=MenuCase[Fcase];//赋EEPROM写入数值
                                       CFGS=DataSpace;        //指定访问闪存区或EEPROM区
                                       EEPGD=EepromSpace;     //指定访问EEPROM区
                                       WREN=AllowWrite;       //容许内部EEPROM写操作
                                       GIE=false;             //发送写序列码前必须写禁止中断
                                       EECON2=0x55;           //发送写序列码   
                                       EECON2=0xaa;
                                       WR=StartWrite;         //启动写操作
                                       GIE=true;
                                       Fcase++;
                                       }
                  else{
                       WREN=DisAllowWrite;//禁止EEPROM/FLASH写操作
                       WriteEeprom=false;
                       }
                   }
               }
}
//-----------------------------------------------------------------------------
void                 EEpromRead(void)
{
uchar DataCount=0x00;
while(DataCount<datalength){
                           MenuCase[DataCount]=EEPROM_READ(DataCount);
                           DataCount++;
                           }
}
//-----------------------------------------------------------------------------

使用特权

评论回复
5
yewuyi| | 2012-2-27 14:20 | 只看该作者
//-----------------------------------------------------------------------------
//filename: eeprom.h
//Version:  v1.0
//Designer: yezhen
//StartTime:2012-2-6
//EndTime:  
//History:
//-----------------------------------------------------------------------------
#include             "common.h"
//-----------------------------------------------------------------------------
#define              DataSpace            0
#define              ConfigSpace          1
#define              EepromSpace          0
#define              FlashSpace           1
#define              DisAllowWrite        0
#define              AllowWrite           1
#define              StartWrite           1
//-----------------------------------------------------------------------------
extern               schar                MenuCase[];
extern               BYTEBIT              sysflag;
extern               uchar                Fcase;
//-----------------------------------------------------------------------------

使用特权

评论回复
6
兰天白云| | 2012-2-28 09:56 | 只看该作者
楼主肯定没看数据手册

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:抢钱、抢粮、抢女人! https://shop105961755.taobao.com/index.htm?spm=2013.1.w5002-3338070316.2.f652157E8BRIA

226

主题

1761

帖子

30

粉丝