📄 timer.h
字号:
/*********************************************************/
/* IDENTIFIER FOR TIMER DEVICE */
/*********************************************************/
#define TIMER_DEV0 0
#define TIMER_DEV1 1
/* Timer Mode Register */
/*********************************************************/
/* TIMER MODE REGISTER */
/*********************************************************/
#define TM0_RUN 0x01 /* Timer 0 enable */
#define TM0_TOGGLE 0x02 /* 0, interval mode */
#define TM0_OUT_1 0x04 /* Timer 0 Initial TOUT0 value */
#define TM1_RUN 0x08 /* Timer 1 enable */
#define TM1_TOGGLE 0x10 /* 0, interval mode */
#define TM1_OUT_1 0x20 /* Timer 0 Initial TOUT0 value */
/*********************************************************/
/* USABLE MACROS FUNCTIONS & DATA STRUCTURES */
/*********************************************************/
#define Timer0Stop() (TMOD &= ~TM0_RUN)
#define Timer1Stop() (TMOD &= ~TM1_RUN)
#define Timer0Start() (TMOD |= TM0_RUN)
#define Timer1Start() (TMOD |= TM1_RUN)
#define TimerStart(t) ((t)? Timer1Start():Timer0Start())
#define TimerStop(t) ((t)? Timer1Stop(): Timer0Stop())
#define tmDATA(t) (t*0.001*fMCLK-1) // t is time tick,unit[ms]
#define t_data_ms(t) (t*0.001*fMCLK-1) // t is time tick,unit[ms]
#define t_data_us(t) (t*0.000001*fMCLK-1) // t is time tick,unit[us]
typedef struct {
void (*TIMER_Lisr)(); /* TIMER Interrupt Function Pointer */
UINT32 TM_CHANNEL; /* TIMER DEVICE */
UINT32 TM_MODE; /* Timer mode register */
UINT32 TM_DATA; /* Timer data,timer range is 1~0xffffffff */
UINT32 TM_OUT_PORT; /* Enable timer output port */
}TM_PARAM;
typedef struct {
volatile unsigned int tm_sec;
volatile unsigned int tm_min;
volatile unsigned int tm_hour;
volatile unsigned int tm_mday;
volatile unsigned int tm_mon;
volatile unsigned int tm_year;
}TIME;
extern void tmReset(int TIMER_DEV);
extern void tm_init(int TIMER_DEV, int t);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -