ec.c

来自「MSP430F413单相电表DEMO(编译器IAR 3.42A)」· C语言 代码 · 共 36 行

C
36
字号

void ProcEC(void)
{
	// 1: 当前月电量
	if(SM.CMonChk!=ChkSum(SM.CMon.Fee[0], sizeof(CMONBLK)))
	{
		E2ToRAM(1,E2PInfo[1].Addr);
	}
	
	_BCD4INC((unsigned char *)&SM.CMon.Fee[0]);
	_BCD4INC((unsigned char *)&SM.CMon.Fee[SM.Cfg.FeeNo[0]+1]);
	if(REVP_IN&REVP_BIT) _BCD4INC((unsigned char *)&SM.CMon.RevEC[0]);


	if((SM.CMon.Fee[0][0]&0x0F)==0)		// 电量增加 0.1,保存
	{
		if((SM.CMon.Fee[0][0]&0xFF)==0)	// 电量增加 1,保存
			SM.E2Flgs |= S_E2CMONGRP;
		
		if(++SM.CMon.WE2PTms>=800000)
		{
			SM.CMon.WE2PTms=0;
			if(SM.CMon.Addr_0_1[0]>=E2Stop_0_1)
				SM.CMon.Addr_0_1[0]=E2Start_0_1;
			else
				SM.CMon.Addr_0_1[0] +=8;
		}
		
		SM.E2Flgs |= S_E2KWH_0_1;    
		DM.Tsk.Req.I2C=1;   
	}
	
	SM.CMonChk=ChkSum(SM.CMon.Fee[0], sizeof(CMONBLK));	
	DM.Tsk.Req.EC=0; 
}

⌨️ 快捷键说明

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