大家好,
stm32 systick 软件定时器有几个函数,大家交流下,怎么使用,thanks
/*
*********************************************************************************************************
* 函 数 名: StartTimer
* 功能说明: 启动一个定时器,并设置定时周期。
* 形 参: _id : 定时器ID,值域【1,TMR_COUNT-1】。用户必须自行维护定时器ID,以避免定时器ID冲突。
* 定时器ID = 0 已用于DelayMS()函数
* _period : 定时周期,单位10us
* 返 回 值: 无
*********************************************************************************************************
*/
void StartTimer(uint8_t _id, volatile uint32_t _period)
{
if (_id >= TMR_COUNT)
{
/* while(1); 死机 */
return;
}
// __set_PRIMASK(1); /* 关中断 */
g_Tmr[_id].count = _period;
g_Tmr[_id].flag = 0;
// __set_PRIMASK(0); /* 开中断 */
}
/*
*********************************************************************************************************
* 函 数 名: CheckTimer
* 功能说明: 检测定时器是否超时
* 形 参: _id : 定时器ID,值域【1,TMR_COUNT-1】。用户必须自行维护定时器ID,以避免定时器ID冲突。
* 0 用于
* _period : 定时周期,单位10us
* 返 回 值: 返回 0 表示定时未到, 1表示定时到
*********************************************************************************************************
*/
uint8_t CheckTimer(uint8_t _id)
{
if (_id >= TMR_COUNT)
{
return 0;
}
if (g_Tmr[_id].flag == 1)
{
g_Tmr[_id].flag = 0;
return 1;
}
else
{
return 0;
}
// return g_Tmr[_id].flag;
}
请大侠指点,多谢 |