码迷,mamicode.com
首页 > 其他好文 > 详细

延时Delay

时间:2020-11-07 16:50:12      阅读:24      评论:0      收藏:0      [点我收藏+]

标签:lock   base   div   val   systick   system   sig   tick   config   

unsigned int Base_us;
unsigned int Base_ms;

void DELAY_Init(void)
{
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
    
    Base_us = SystemCoreClock/8000000;
    Base_ms = Base_us*1000;
}

void DELAY_us(unsigned int n)
{
    unsigned int Temp;
    
    SysTick->LOAD = n*Base_us;
    SysTick->VAL  = 0x00;
    SysTick->CTRL|= SysTick_CTRL_ENABLE_Msk;
    
    do
    {
        Temp = SysTick->CTRL;
    }while((Temp&0x01)&&!(Temp&(1<<16)));
    
    SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
    SysTick->VAL   = 0x00;
}

void DELAY_ms(unsigned int n)
{
    unsigned int Temp;
    
    SysTick->LOAD = n*Base_ms;
    SysTick->VAL  = 0x00;
    SysTick->CTRL|= SysTick_CTRL_ENABLE_Msk;
    
    do
    {
        Temp = SysTick->CTRL;
    }while((Temp&0x01)&&!(Temp&(1<<16)));
    
    SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;
    SysTick->VAL   = 0x00;
}

延时Delay

标签:lock   base   div   val   systick   system   sig   tick   config   

原文地址:https://www.cnblogs.com/PolarBearINBrown/p/13939220.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!