OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5650|回复: 1

Systick是不是解决不了这个CPU忙等的现象?

[复制链接]

210

主题

318

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1998
金钱
1998
注册时间
2015-10-27
在线时间
216 小时
发表于 2015-12-6 13:41:31 | 显示全部楼层 |阅读模式
5金钱
我们使用延时时,通常都是使用几个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

     …

     }

}

最佳答案

查看完整内容[请看2#楼]

比你软件延时要准
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

180

帖子

1

精华

高级会员

Rank: 4

积分
616
金钱
616
注册时间
2015-6-29
在线时间
101 小时
发表于 2015-12-6 13:41:32 | 显示全部楼层
我是菜鸟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 18:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表