原创 用SysTick作为定时时钟,生成延时函数Delay(N)

2013-9-26 21:32 1296 15 15 分类: MCU/ 嵌入式 文集: 学习记录

     通过配置SysTick,设定1ms产生一次中断,在中断函数里对N减一,在Delay(N)中循环检测N是否为0,不为0则进行循环等待;若为0则关闭SysTick时钟,退出函数。延时时间将不随系统时钟频率改变。

 

  if (SysTick_Config(SystemCoreClock / 1000))

  { 
    /* Capture error */ 
    while (1);
  }
 

void Delay(__IO uint32_t nTime)

  TimingDelay = nTime;
 
  while(TimingDelay != 0);
}
 
void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
  { 
    TimingDelay--;
  }
}
 
void SysTick_Handler(void)
{
  TimingDelay_Decrement();
}

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
15
关闭 站长推荐上一条 /3 下一条