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

📄 stimer.c

📁 一个基于XMODEM协议的下载字库的程序
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -