打印
[STM32F1]

非阻塞的用法

[复制链接]
580|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pixhw|  楼主 | 2023-5-25 15:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
E_Bool Ticker_Out(u32 *pTicker, u32 uCompareValue)
{
    u32 uTicks = 0;
        uTicks = BSP_Get_SysTick();
   
    if(0 == uCompareValue)
        {
                  *pTicker = uTicks;
          return True;               
        }
    else
        {
            if(uTicks >= (*pTicker))
                        {
                                  uTicks = uTicks - (*pTicker);
                        }
            else
                        {
                                  uTicks = (U32_MAX_VALUE - (*pTicker)) + uTicks;
                        }
            if (uTicks >= uCompareValue)
                        {
                            return True;
                        }
    }
return False;
}

u32 BSP_Get_SysTick(void)
{
    return gSystickTimes;    /* 获取系统心跳 */              
}
void SysTick_Handler(void)
{
   gSystickTimes++;      /* 系统心跳计数 */
}

int main()
{
    E_Bool eState = False;
        static u32 uSampleTicker = 0;

    while(1)
    {
        eState = Ticker_Out(&uSampleTicker, 500);
            if(True == eState)
            {
            Ticker_Out(&uSampleTicker, 0);
            LED_ON();
        }
    }
}



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

4620

帖子

1

粉丝