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

📄 time.h

📁 结构清晰的单片机定时器实现时钟 闹钟 调时等功能
💻 H
字号:
#ifndef _TIME_H
//--------------------------------------------------------------------------------
#define _TIME_H


/*
//--------------------------------------------------
// private definitions for time
//--------------------------------------------------
typedef struct	{
	UINT8 hour;
	UINT8 minute;
	UINT8 second;
	UINT8 TimeArray[8];
}StTime;
//--------------------------------------------------
// private definitions for timer event
//--------------------------------------------------
typedef struct{
	UINT8 uctime;
	void (*event)(void);
} StTimerEvent;

*/
#define MaxTimerEventAmount		5
#define InactiveEventTime			0xffff
//--------------------------------------------------
//============definition for declaration============
//--------------------------------------------------
#ifdef _TIME_C
    #define EXTERN
#else
    #define EXTERN   extern
#endif
//--------------------------------------------------
// Extern Global Variables
//--------------------------------------------------
EXTERN StTime stCurrTime;
EXTERN StTime stAlarmTime;

EXTERN StTimerEvent TimerEventTab[MaxTimerEventAmount];
//--------------------------------------------------
// Extern Function Prototypes
//--------------------------------------------------
EXTERN void TimeRun(void);
EXTERN void AlarmRun(void);

EXTERN void Timer0Init(void);

EXTERN void TimeHandler(void);
EXTERN void UpdataTime(StTime * ptime);
EXTERN void MdfTimeProc(StTime * pTime);
//timer event functions 
EXTERN void TimerEventInit(void);
EXTERN void ActiveTimerEvent(UINT8 usTime, void (*Event)());
EXTERN void DecreaseTimerCnt(void);

EXTERN void LedFlash(void);

//--------------------------------------------------
#undef EXTERN
//--------------------------------------------------
//--------------------------------------------------
// Macro of TimeRun Flag
//--------------------------------------------------
#define GET_TIMERUN()   		((bool)(ucBitFlag & _BIT0))
#define SET_TIMERUN()   		(ucBitFlag |= _BIT0)
#define CLR_TIMERUN()   		(ucBitFlag &= ~_BIT0)

//--------------------------------------------------
// Macro of alarm  Flag :	 when GET_ALARMSTATUS() == 0x03<<1 == 0000 0110 ,alarm is on
//--------------------------------------------------
//#define GET_ALARMSTATUS() 	((ucBitFlag & (_BIT2 | _BIT1)) >> 1)
//#define SET_ALARMSTATUS(x) 	( ucBitFlag = (ucBitFlag & ~(_BIT2 | _BIT1)) | (x<<1))
#define GET_ALARM_ONOFF()   		((bool)(ucBitFlag & _BIT1))
#define SET_ALARM_ONOFF()   		(ucBitFlag |= _BIT1)
#define CLR_ALARM_ONOFF()   		(ucBitFlag &= ~_BIT1)


//--------------------------------------------------
// Macro of soft_timer for Timer event 
//--------------------------------------------------
#define GET_TIMER0_CRITICAL()   		((bool)(ucBitFlag & _BIT2))
#define SET_TIMER0_CRITICAL()   		(ucBitFlag |= _BIT2)
#define CLR_TIMER0_CRITICAL()   		(ucBitFlag &= ~_BIT2)

//--------------------------------------------------
//--------------------------------------------------
#endif

⌨️ 快捷键说明

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