⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 measure.c

📁 电压和电流的测量程序,这是个很典型的应用,通过这个很实用
💻 C
字号:
#include <msp430xe42x.h>
#include <string.h>
#include "inc\Common.h"
#include "inc\Type.h"
#include "inc\General.h"
#include "inc\Mem.h"
#include "inc\Data.h"

void EC_INC(int Adr_EC)
{
	int	Adr_ECFee;
	FRAM_Read( (char*)&Buffer, Adr_EC, 20 );
	_BCD4INC( (char*)&Buffer[0] );
	Adr_ECFee = 4*( Flag.Fee + 1 );
	_BCD4INC( (char*)&Buffer[Adr_ECFee] );
        MEM_DBWrite( Adr_EC,(char*)Buffer,20,Mem_FRAM);
}

void ECMeas(void)
{
	if( SM.PWCnt >= FC_S0Out) 
	{
		SM.PWCnt -= FC_S0Out;
		EC_INC( CM_EC + EC_Pp0 );
	}
}
void MDMeas(void)          //Excute Every Minute
{
	
	long	OldMD, NewMD;
	
	MaxD.DTCT++;
	if( MaxD.DTCT >= 30 ) 
	{
		MaxD.DTCT = 0;
		NewMD = MaxD.Max0;   //30分钟内的脉冲数
		MaxD.Max0 = 0;

		OldMD = (long)(NewMD * 20.0);    //MaxD.Max0/1000 *60 /30 *1000*3600/3600*10
		Long_BCD4( (char*)&NewMD, OldMD );
		
		OldMD = 0x00000000;
		FRAM_Read( (char*)&OldMD, CM_MD, 4 );
		if( NewMD > OldMD )  MEM_DBWrite( CM_MD,(char*)&NewMD,4,Mem_FRAM);
		
		FRAM_Read( (char*)Buffer, CM_MD, 4);
		_NOP();
	}
}
/**********************************************************
	Maximum Demand Reset
		1.计量缓存区清零
		2.当前最大需量清零
		3.设置锁定时间
		4.需量清零事件记录(累计次数、清零时间记录)
**********************************************************/
void MDReset(void)
{
		MaxD.Max0 = 0;
		MaxD.DTCT = 0;
		memset( (char*)&Buffer, 0, 4 );
		MEM_DBWrite( CM_MD,(char*)&Buffer, 4,Mem_FRAM );	
}


⌨️ 快捷键说明

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