stimer.c
来自「一个基于XMODEM协议的下载字库的程序」· C语言 代码 · 共 81 行
C
81 行
#include "config.h"
/*******************************************************************************
程序名:vSoftTimer_Init
说 明:初始化软定时器
********************************************************************************/
void vSoftTimer_Init(void)
{
unsigned char i;
for(i=0; i<MAX_SOFT_TIMER; i++)
{
rSoftTimer[i].chFlag = 0;
rSoftTimer[i].nCountTime = 0;
rSoftTimer[i].Function = NULL;
}
}
/*******************************************************************************
程序名:vSoftTimer_Run
说 明:启动软定时器
********************************************************************************/
void vSoftTimer_Run(unsigned char chIndex, unsigned int nDelayTime, void(* Function)(void))
{
if((nDelayTime != 0) && (Function != NULL))
{
rSoftTimer[chIndex].chFlag = 0x01;
rSoftTimer[chIndex].nCountTime = nDelayTime;
rSoftTimer[chIndex].Function = Function;
}
}
/*******************************************************************************
程序名:vSoftTimer_Stop
说 明:停止软定时器
********************************************************************************/
void vSoftTimer_Stop(unsigned char chIndex)
{
rSoftTimer[chIndex].chFlag = 0x00;
rSoftTimer[chIndex].Function = NULL;
}
/*******************************************************************************
程序名:vSoftTimer_Sub
说 明:软定时器计数加1
********************************************************************************/
void vSoftTimer_Sub(void)
{
unsigned char i;
if(stimer_tick > 98) //48,50, 修正
{
stimer_tick = 0;
for(i=0; i<MAX_SOFT_TIMER; i++)
{
if((rSoftTimer[i].chFlag == 0x01) && (rSoftTimer[i].nCountTime > 0)) rSoftTimer[i].nCountTime--;
}
}
}
/*******************************************************************************
程序名:vSoftTimer_Check
说 明:检查定时器溢出事件
********************************************************************************/
void vSoftTimer_Check(void)
{
unsigned char i;
for(i=0; i<MAX_SOFT_TIMER; i++)
{
if((rSoftTimer[i].chFlag == 0x01) && (rSoftTimer[i].nCountTime == 0) && (rSoftTimer[i].Function != NULL))
{
rSoftTimer[i].Function();
}
}
}
/*******************************************************************************
程序名:vSoftTimer_Null
说 明:清空定时器
********************************************************************************/
void vSoftTimer_Null(unsigned char chIndex)
{
rSoftTimer[chIndex].nCountTime = 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?