我们使用延时时,通常都是使用几个for循环进行忙等的延时,那么我看了这个Systick好像也是一种忙等的延时,如下PPT中的程序,这个delay函数一定是忙等啊?
我觉得除了这个systick计时确实要比写for循环要准,但是这个systick定时器跟写for循环其实都是一种忙等的思路,那么systick定时器到底有哪些优点呢?
static __IO uint32_t TimingDelay;
void Delay(__IO uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay !=
0); //这不 就是在忙等吗?程序必须等着他搞完才能做其它的事情,那这个systick有啥优势啊?
}
void SysTick_Handler(void)
{
if (TimingDelay !=
0x00)
{
TimingDelay--;
}
}
int
main(void)
{ …
if (SysTick_Config(SystemCoreClock /
1000)) //systick时钟为HCLK,中断时间间隔1ms
{
while (1);
}
while(1)
{ Delay(200);//2ms
…
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>