📄 time.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 + -