mem.c

来自「本公司的单相CPU卡表的源程序代码」· C语言 代码 · 共 101 行

C
101
字号
/*
************************************************************************
* mem.c:
* 
********************************************************************
*/
#include "include\macro.h"  
#include "include\HardConfig.h"
#include "include\SysConfig.h"
#include "include\SubConfig.h"
#include "include\data.h"
#include "include\bitdef.h"

#include "include\FunAnnounce.h"

/*****************************************************************************
*   
******************************************************************************/
void Get_default(uint Dest,uchar *Src,uchar len)
{
    register unsigned char i;

       switch(Dest)
       {
               case  E2P_ID:
               case  E2P_MM0:
               case  E2P_USERDEFINE:
                       for(i=len; i>0; i--)
                       {
                               *Src = 0;
                               Src++;
                       } 
                       break;
                       
               case  E2P_PLUSE:
                               *Src = (CONS_METER/2);
                       break;

               case  E2P_EADJ:
                       for(i=3; i>0; i--)
                       {
                               *Src = 0x50;
                               Src++;
                               *Src = 0x35;
                               Src++;
                       } 
                       break;
                       
               default:
                       break;
       }

}



/*****************************************************************************
*   
******************************************************************************/

void MEM_Write(uint Dest, uchar *Src, uchar len )
{

    uchar tmp_data0;
  
    Sram.WrPw = MEMW_ENABLE;
    
    WtEEpage(Dest,Src,len);
    tmp_data0 = Get_csckNum( Src, len );
    WtEEpage((Dest+len),&tmp_data0,0x01);   
            
    WtEEpage(Dest+E2PBAK,Src,len);
    WtEEpage((Dest+len)+E2PBAK,&tmp_data0,0x01);             


    Sram.WrPw = MEMW_FORBID ;  //

}

/*****************************************************************************
*   
******************************************************************************/

char MEM_Read(uint Dest, uchar *Src, uchar len)
{   
    uchar tmp_data0;

    RdEeprom(Dest,Src,len);
    RdEeprom(Dest+len,&tmp_data0,0x01);
    if ( Get_csckNum( Src,len ) == tmp_data0 )       return(1);
            
    RdEeprom(Dest+E2PBAK,Src,len);
    RdEeprom(Dest+len+E2PBAK,&tmp_data0,0x01);                    
 
    if ( Get_csckNum( Src,len ) == tmp_data0 )       return(1);
    Get_default(Dest,Src,len);          
    return(0);           
            
}

⌨️ 快捷键说明

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