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

📄 systmr.h

📁 一个操作系统源代码 用于嵌入式设备 在Vc++环境下仿真 成功移植到多款处理器上
💻 H
字号:
/*****************************************************************
*  Function Name: TimerProc 
*  Param in: void
*  Result code: void 
*  Description: process RTC timer by event
*****************************************************************/ 
#ifndef	TIMER_H
#define	TIMER_H

#include <asixdef.h>
#include <sys\systsk.h>

typedef struct
{
	WORD	hour;
	WORD	minute;
	WORD	second;
}ASIX_TIME;

typedef struct
{
	WORD	year;
	WORD	month;
	WORD	day;
}ASIX_DATE;


#define	TIMER_ERROR		-1
#define TIMER_OK		0

#define	MAX_TIME		(DWORD)4294967295	/* Max long integer */

//#ifndef	MSPTICK
//#define	MSPTICK			32    /* Milliseconds per tick: 32 ==1000/32 */
//#endif

/* Timer Modes */
#define CYC_MODE			0x0001
#define ALARM_MODE			0x0002
#define AUTO_CLEAR_MODE	0x0004
#define AUTO_START_MODE	0x0008

#define	IS_LEAP_YEAR( year )	((year)%4?0:((year)%100?1:((year)%400?0:1)))

/* PUBLIC FUNCTIONS */
extern STATUS SysCreateTimer(PDWORD t_id, DWORD interval, void (*func)(void *),void *arg,WORD mode);
extern STATUS SysFreeTimer(DWORD t_id);
extern STATUS SysStartTimer(DWORD t_id);
extern STATUS SysStopTimer(DWORD t_id);
extern DWORD SysReadTimer(DWORD t_id);

extern STATUS SysReadDateTime( ASIX_DATE *date, ASIX_TIME *time );
extern STATUS SysSetDateTime( ASIX_DATE *date, ASIX_TIME *time );
extern STATUS SysSetTime( ASIX_TIME *time );
extern STATUS SysSetDate( ASIX_DATE *date );
extern STATUS SysGetTime( ASIX_TIME *time );
extern STATUS SysGetDate( ASIX_DATE *date );
extern STATUS SysGetElapsedTime( ASIX_TIME *elapse, ASIX_TIME *start, ASIX_TIME *end );
extern STATUS SysGetElapsedDays( DWORD *elapse, ASIX_DATE *start, ASIX_DATE *end );
extern STATUS SysTimeElapse( ASIX_TIME *end, ASIX_TIME *start, ASIX_TIME *elapse );
extern STATUS SysDateElapse( ASIX_DATE *end, ASIX_DATE *start, DWORD elapse );
extern short SysCompareTime( ASIX_TIME *timL, ASIX_TIME *timR );
extern short SysCompareDate( ASIX_DATE *dateL, ASIX_DATE *dateR );
extern STATUS Date2Days( DWORD *days, ASIX_DATE *date );
extern STATUS Days2Date( ASIX_DATE *date, DWORD days );
extern STATUS VerifyDate( ASIX_DATE *date );

extern BYTE CaculateLeapYear( WORD *leapYear, WORD curYear );

EXTERN DWORD	passedticks;	/* Used to record how many ticks have passed */
EXTERN DWORD	currentclock;	/* Current clocks of system since it boots */

extern WORD		StdYear;

#endif	/* TIMER_H */

⌨️ 快捷键说明

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