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

📄 fee.c

📁 智能水表程序 来着互联网
💻 C
字号:
//-----------------------------------------------------------------------------
// fee.c
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <reg52.h>
#include "cpu/cpu.h"
#include "main/main.h"
#include "ext/x5045.h"
#include "misc/misc.h"
#include "misc/general.h"
#include "config/config.h"
//-----------------------------------------------------------------------------
// Function Prototype
//-----------------------------------------------------------------------------
bit Fee_Account (void);
bit Mem_Fee_Update (void);
//-----------------------------------------------------------------------------
// Fee Account Routine
//-----------------------------------------------------------------------------
bit Fee_Account (void)
{
	bit level;

	if ( f.Run != RUN || bWire == ERROR ) return FALSE;
		#ifdef FEE_PULSE
    level = Check_Sensor_Level ();
	if ( bSensor == HIGH ) 
	{
		if ( level == LOW ) bSensor = level;
		return FALSE;
	}
	else 
	{
		if ( level == LOW ) return FALSE;
		else  bSensor = level;					// Only rise edge pulse account fee
	}        				
		#elif  FEE_TIME
	if ( I380 == LOW ) return FALSE;
		#endif
//	if ( bDue == FALSE && r.Remain-- == ZERO ) bDue = TRUE;
//	else r.Remain++;
	if ( bDue == FALSE )
		if ( r.Remain != ZERO )
			 r.Remain--;
		else
		{
			bDue = TRUE;
			r.Remain = 1;
		}	
	else r.Remain++;
	if ( r.Remain == RemainMax ) r.Remain = ZERO;
	if ( ++r.Total == TotalMax ) r.Total  = ZERO;
	return UPDATE;
}
//-----------------------------------------------------------------------------
// Memory Fee Update Routine
//-----------------------------------------------------------------------------
bit Mem_Fee_Update (void)
{
	struct
	{
		unsigned long Total;
		unsigned long Remain;
	} buf;
	
	if ( bMem = x5045_Is_Busy ()) return FALSE;
	buf.Total  = Hex_BCD ( r.Total,  7 );
	buf.Remain = Hex_BCD ( r.Remain, 7 );
	if ( bDue == TRUE )	buf.Remain |= isDUE;
	x5045_Write_Enable ();
	x5045_Write ( stRemain_memAddr, (char *) &buf, sizeof( buf ));
	return TRUE;
}

⌨️ 快捷键说明

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