查看: 2567|回复: 3

[S12] MC9S12G EEPROM ECC问题???(已解决)

[复制链接]
  • TA的每日心情
    奋斗
    2019-6-9 17:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    21

    主题

    65

    帖子

    0

    注册会员

    Rank: 2

    积分
    178
    最后登录
    2019-7-18
    发表于 2014-10-30 21:55:00 | 显示全部楼层 |阅读模式
    本帖最后由 FSL_TICS_ZP 于 2014-11-27 14:56 编辑

    代码如下:问题见红色字体描述。
    #define EepromStartAddress     0x0400
    #define EepromEndAddress       0x0BFF

    FCNFG =0X03; /*Force Double Bit Fault Detect*/

    unsigned char g_uint8_EepGetByte(unsigned int b_u16_EepAddress)
    {
        unsigned char ReturnData,test;
        if (b_u16_EepAddress<EepromStartAddress || b_u16_EepAddress>=EepromEndAddress ) {
            return 0;
        }

        if(!FSTAT_CCIF) {               // Is reading from EEPROM possible?
            return 0;                   // If no then error
        }

        ReturnData=(*(unsigned char volatile*)b_u16_EepAddress);
       asm("nop");

    asm("nop");
    asm("nop");
    asm("nop");
    test = FERSTAT;
    if(FERSTAT&0x03)
    {/*为什么每次读完检测ECC都有故障,查看读出数据有是正常地,请高手指教*/            
          FERSTAT |= 0x03;
          return 0;
    }
    else
    {
        return  ReturnData;

    }

    }


    我知道答案 目前已有3人回答
    回复

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2014-10-31 08:44:47 | 显示全部楼层
    本帖最后由 FSL_TICS_ZP 于 2014-10-31 08:52 编辑

    你好,楼主!
    绿色完全看不清楚,我把代码贴在下一楼啊,请问问题代码是哪一行?
    #define EepromStartAddress     0x0400
    #define EepromEndAddress       0x0BFF

    FCNFG =0X03; /*Force Double Bit Fault Detect*/

    unsigned char g_uint8_EepGetByte(unsigned int b_u16_EepAddress)
    {
        unsigned char ReturnData,test;
        if (b_u16_EepAddress<EepromStartAddress || b_u16_EepAddress>=EepromEndAddress ) {
            return 0;
        }

        if(!FSTAT_CCIF) {               // Is reading from EEPROM possible?
            return 0;                   // If no then error
        }

        ReturnData=(*(unsigned char volatile*)b_u16_EepAddress);
       asm("nop");

    asm("nop");
    asm("nop");
    asm("nop");
    test = FERSTAT;
    if(FERSTAT&0x03)
    {/*为什么每次读完检测ECC都有故障,查看读出数据有是正常地,请高手指教*/            
          FERSTAT |= 0x03;
          return 0;
    }
    else
    {
        return  ReturnData;

    }

    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    802

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1763
    最后登录
    1970-1-1
    发表于 2014-10-31 17:26:08 | 显示全部楼层
    先不循环, 一次次对比,
    参考
    https://wenku.baidu.com/link?url ... 5jNuYYCsroI2xGVjAzS
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6030
    最后登录
    2025-8-21
    发表于 2014-11-3 10:38:12 | 显示全部楼层
    楼主你好
    以后发帖建议不要直接把其他论坛或文档里的内容复制粘贴过来,否则很容易导致大家无法正常阅读你的帖子内容。

    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-8 03:25 , Processed in 0.082446 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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