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

📄 time.c

📁 IC卡源代码
💻 C
字号:
/********************************************************************************/
/*																				*/
/*		Mitsubishi Electric Shanghai Electric Elevator Co., Ltd.				*/
/*																				*/
/*		Time Source(Time.c)														*/
/*																				*/
/*		BOARD		KCZ-1310													*/
/*		CPU			Renesas M16C/6N (M306N4FGTFP)								*/
/*		COMPILER	Renesas NC30	V.5.40										*/
/*																				*/
/*		Version			Date			Creater									*/
/*		------------------------------------------								*/
/*		1.00			2006/12/21		itou-hiro								*/
/*																				*/
/********************************************************************************/

/********************************************************************************/
/*	INCLUDE																		*/
/********************************************************************************/
#include "Global_Def.h"

/********************************************************************************/
/*	DEFINE																		*/
/********************************************************************************/
#define DEFAULT_YEAR		0
#define DEFAULT_MONTH		1
#define DEFAULT_DAY			1
#define DEFAULT_WEEK		6
#define DEFAULT_HOUR		0
#define DEFAULT_MIN			0
#define DEFAULT_SEC			0

/********************************************************************************/
/*	GLOBAL																		*/
/********************************************************************************/

/********************************************************************************/
/*	STATIC																		*/
/********************************************************************************/
static	STR_TIME	time_data;
static	STR_TIME	set_time_data;
static	BLtype		set_flg;
static	BLtype		excflg;

static	const Vtype	day_month[] = {31,29,31,30,31,30,31,31,30,31,30,31};

/********************************************************************************/
/*	EXTERN																		*/
/********************************************************************************/
void set_fattime(UDtype);

/********************************************************************************/
/*	PROGRAM																		*/
/********************************************************************************/

/********************************************************************************/
/*	PRIVATE FUNCTION															*/
/********************************************************************************/

/********************************************************************************
 MODULE		: chk_time
 ABSTRACT	: Time Chkeck
 FUNCTION	: 
 NOTE 		: 
 RETURN		: 
 				OK	LL_TRUE
 				NG	LL_FALSE
********************************************************************************/
static	BLtype	chk_time(
							const STR_TIME *chktime	/* Check Time Data*/
								){
	
	if(chktime->month == 0 || chktime->month > 12)
		return LL_ER;
	if(chktime->day == 0 || chktime->day > day_month[chktime->month - 1])
		return LL_ER;
	if(chktime->week > 6)
		return LL_ER;
	if(chktime->hour > 23)
		return LL_ER;
	if(chktime->min > 59)
		return LL_ER;
	if(chktime->sec > 59)
		return LL_ER;
	
	return LL_OK;
}

/********************************************************************************
 MODULE		: set_fs_time
 ABSTRACT	: set Date Time For FileSystem
 FUNCTION	: 
 NOTE 		: 
 RETURN		: Nothing
********************************************************************************/
static void set_fs_time(void){

	UWtype date,time;
	
	date = ((time_data.year + 20) << 9) + (time_data.month << 5) + (time_data.day);
	time = (time_data.hour << 11) + (time_data.min << 5) + (time_data.sec / 2);
	
	set_fattime((((UDtype)date) << 16) + (UDtype)time);
}

/********************************************************************************/
/*	PUBLIC FUNCTION																*/
/********************************************************************************/

/********************************************************************************
 MODULE		: TIME_INIT
 ABSTRACT	: Initialize Time
 FUNCTION	: 
 NOTE 		: 
 RETURN		: 
 				OK LL_OK
 				NG LL_NG
********************************************************************************/
ERtype	TIME_INIT(void){ //@ NOT VOID

	/* Default Date Time Set */
	time_data.year	= DEFAULT_YEAR;
	time_data.month	= DEFAULT_MONTH;
	time_data.day	= DEFAULT_DAY;
	time_data.week	= DEFAULT_WEEK;
	time_data.hour	= DEFAULT_HOUR;
	time_data.min	= DEFAULT_MIN;
	time_data.sec	= DEFAULT_SEC;
	
	set_fs_time();
	
	/* Time Set Flg Clr */
	set_flg = LL_FALSE;

	/* Exclusion Flg Clf*/
	excflg = LL_FALSE;

	return LL_OK;
}

/********************************************************************************
 MODULE		: GET_TIME
 ABSTRACT	: Now Time Return
 FUNCTION	: 
 NOTE 		: 
 RETURN		: Now Time Data Pointer
********************************************************************************/
const STR_TIME *GET_TIME(void){

	return	&time_data;
}

/********************************************************************************
 MODULE		: SET_TIME
 ABSTRACT	: Adjust Time
 FUNCTION	: 
 NOTE 		: 
 RETURN		: Nothing
********************************************************************************/
void	SET_TIME(
					const UBtype *ptime
								){
	
	if(excflg == LL_FALSE){
		/* Time Data Copy Local */
		set_time_data.year	= ptime[4];
		set_time_data.month	= ptime[3];
		set_time_data.day	= ptime[2];
		set_time_data.week	= ptime[5];
		set_time_data.hour	= ptime[1];
		set_time_data.min	= ptime[0];
		set_time_data.sec	= 0;
		
		set_fs_time();
		
		/* Time Set Flg Set */
		set_flg = LL_TRUE;
	}
}

/********************************************************************************
 MODULE		: TIME_MAIN
 ABSTRACT	: Time Main Function
 FUNCTION	: 
 NOTE 		: 
 RETURN		: Nothing
********************************************************************************/
void	TIME_MAIN(void){

	/* Time UpData */
	if(set_flg){
		
		/* Exclusion Flg Set*/
		excflg = LL_TRUE;
		
		/* Time Data Check */
		if(chk_time(&set_time_data) == LL_TRUE){
			/* UpData */
			time_data = set_time_data;
		}
		/* Clr Flg */
		set_flg = LL_FALSE;
		
		/* Exclusion Flg Clr*/
		excflg = LL_FALSE;
	}
}

⌨️ 快捷键说明

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