查看: 1606|回复: 2

[其他] flash模拟e2,写数据错???

[复制链接]

该用户从未签到

16

主题

61

帖子

0

注册会员

Rank: 2

积分
137
最后登录
1970-1-1
发表于 2014-6-19 16:23:56 | 显示全部楼层 |阅读模式
在用s08sc4的8位片子,参考网上查找的用flash模拟eeprom的方法,用s08sc4的flash模拟eeprom。仿真运行的时候,读、写flash都是成功的,但是只有第一次写flash是正确的,读回来的和写入的是数据一致。
当在同一地址上再写其他不同的数据时,发现读回来的数据和写入的数据不一致,可以肯定的时候读没有问题,所以写的数据出错。
为什么只有第一次写是ok的,第二次,第三次写就不正常呢?
求各位高手指点指点啊!!!!
代码如下:
/***********************************************************************
#define  FlashData       FlashMem[6]                         // ,
#define  FlashAddr       (*((word *)(&FlashMem[8])) )          // ,
#define  FlashCmd       FlashMem[11]                        // ,   
#define  RunFlashCmd    ((void (*)(void))((word)FlashMem))     // 
byte FlashMem[32] =
{
    0xA6,0x10,0xC7,0x18,0x25,0xA6,
    0x00,0xC7,0xFD,0x00,0xA6,0x20,0xC7,0x18,0x26,0xA6,
    0xC0,0xC7,0x18,0x25,0x9D,0x9D,0x9D,0x9D,0xC6,0x18,0x25,0xA5,0x40,0x27,0xF9,0x81
};
void flash_byte_write(word add,byte sdata)
{
   byte data=sdata;
   __RESET_WATCHDOG();
   DisableInterrupts;
   FlashData = data; // 更新数据
   FlashAddr = add;  // 更新地址
   FlashCmd = 0x20;  // 字节编程命令: 0x20
   RunFlashCmd();    // 32字节程序入口
   EnableInterrupts;
}
void flash_Sector_erase(word add)
{
  __RESET_WATCHDOG();
  DisableInterrupts;
  FlashAddr = add;       // Flash地址 
  FlashCmd = mPageErase; // 扇区删除命令: 0x40
  RunFlashCmd();         // 32字节程序入口
  EnableInterrupts;
}
byte flash_byte_read(word add)
{
  byte tempbyte;
 asm{
       LDHX add
       LDA  ,X       //读取地址到数据变量
       STA  tempbyte
     }
  __RESET_WATCHDOG();
 return tempbyte;
}

void E2_read_data(word add,byte len)
{
 byte i;
 word addr;
  addr=add;
 __RESET_WATCHDOG();
 for(i=0;i
我知道答案 目前已有1人回答
回复

使用道具 举报

该用户从未签到

16

主题

61

帖子

0

注册会员

Rank: 2

积分
137
最后登录
1970-1-1
 楼主| 发表于 2014-6-23 15:55:45 | 显示全部楼层

RE:flash模拟e2,写数据错???

问题已解决,擦除FLASH延时时间不够
回复 支持 反对

使用道具 举报

该用户从未签到

16

主题

705

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1745
最后登录
1970-1-1
发表于 2014-6-24 16:14:30 | 显示全部楼层

RE:flash模拟e2,写数据错???

恩,看到这个题在FAE版块以及解决了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-23 05:35 , Processed in 0.090927 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表