zhilve 发表于 2011-10-14 09:27:46

在改进春风电源eeprom存储方式遇到问题

春风电源中eeprom存储校验比较简单,我把它改成crc校验 存储3份互相校验更正,但是遇到以下问题,请大家帮忙查看一下 我使用的eeprom是24c02
测试程序/******************************************************************************/
unsigned char temp=0
for(temp=0;temp<78;temp++)
                {
                EepromData=250;
                }
                EepromWriteBlock (&EepromData,(unsigned char *)0x00,78);
存储后,读取全部正确
/******************************************************************************/

改进程序
/******************************************************************************/
s8 num;                //这个是全局变量,存储用户设置的值
int shuchuA,shuchuV;      //这个是输出的DA值0~4095
#define EepromPageSize 80 //页容量定义
#define EepromPage1Addr 0x00//将eeprom分成3份
#define EepromPage2Addr (EepromPage1Addr + EepromPageSize)
#define EepromPage3Addr (EepromPage2Addr + EepromPageSize)
void WriteEepromData (unsigned char M)
        {
        unsigned char temp=0;
                EepromData = num;
                EepromData = num;
                EepromData = num;
                EepromData = num;
                EepromData = num;
                EepromData = num;
                EepromData = num;
                EepromData = num;
                EepromData = 0;//备用
        //        EepromData = shuchuV/256;//高8位
        //        EepromData = shuchuV%256;//低8位
        //        EepromData = shuchuA/256;//高8位
        //        EepromData = shuchuA%256;//低8位
                EepromData = 0; //预留
                EepromWriteBlock(&EepromData,(unsigned char *)EepromPage1Addr+M*14,14);
                EepromWriteBlock(&EepromData,(unsigned char *)EepromPage2Addr+M*14,14);
                EepromWriteBlock(&EepromData,(unsigned char *)EepromPage3Addr+M*14,14);
        //        CheckWriteCRC((unsigned char *)EepromPage1Addr,EepromPageSize);
        //        CheckWriteCRC((unsigned char *)EepromPage2Addr,EepromPageSize);
        //        CheckWriteCRC((unsigned char *)EepromPage3Addr,EepromPageSize);
        }
/******************************************************************************/
上面的程序有注释部分 不要看
测试后发现,num到num中num,num存储后读取错误,其他值正确
请大家看看原因,调试了今天了没头绪,大家帮忙看一下
页: [1]
查看完整版本: 在改进春风电源eeprom存储方式遇到问题