datasave.c

来自「讲述ADE7755芯片的基本知识和一些基本应用包含C语言编程」· C语言 代码 · 共 66 行

C
66
字号
#include <REG932.H>
#include <define.h>
#include <Stdio.h>
#include <Intrins.h>

//-----***-根据命令保存数据到制定地址-***-----//
//-----***-DeviceAdd===>IIC的器件地址(数据存储器=0xa0,RTC=0x60,Lm75=0x90)
//-----***-ByteAdd=====>IIC的字节地址
//-----***-*value======>数组的指针
//-----***-DataLend====>数据长度
void CmdSave(unsigned char DeviceAdd,unsigned char ByteAdd,unsigned char DataInNo,unsigned char DataLend)
{
    unsigned char i;
	SnCheck();
	if(PrgSn|AdBit)
	{
		if(DeviceAdd==0xa0)
        {
       	    for(i=0;i<DataLend;i++)
       	    {
                wbyteiic(DeviceAdd,ByteAdd,InceptBuf[DataInNo+i]);
                ByteAdd++;
             }
       	 }
         if(Answer)
         {
             Answer=0;
             InceptBuf[9]=0x04;
             InceptBuf[10]=InceptBuf[14];
             RamCopy(&InceptBuf[11],&InceptBuf[15],3); 
         }
	     AdBit=0;
		 SendStrFg=1;
		 InceptBuf[9]=0x02;
		 DataSend();
	}
    else
    {
        NullityFg=1;
        InceptBuf[9]=0x01;
        InceptBuf[10]=0x00;
        InceptBuf[10]=InceptBuf[10]|0x40;
        SendStrFg=1;
        DataSend();
        CmdParseFg=0;
    }
}

void iicEDatasave(unsigned char i)
{
    unsigned char c;
    //EA=0;
    iicEData[i]=rbyteiic(0xa0,i);
    c=BcdToHex(iicEData[i]);
    //ET0=0;
    if((EData[i]-c)==0x01)
    {
        iicEData[i]=HexToBcd(EData[i]);
        wbyteiic(0xa0,i,iicEData[i]);
    }
    else
    {
        EData[i]=BcdToHex(iicEData[i]);
    }
    
}

⌨️ 快捷键说明

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