OpenEdv-开源电子网

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

能否提供个不阻塞型的延时方法

[复制链接]

3

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2012-5-17
在线时间
3 小时
发表于 2013-7-12 11:09:46 | 显示全部楼层 |阅读模式
在原子的例程中的延时基本使用系统滴答时钟,比如 delay_ms(100); 这个延时是阻塞;
cpu什么也不做在那里等待100ms,这个在实际工程中降低cpu运行的速度。
使用定时器延时,这个方法可以但比较麻烦。
所以请教各位有没有更简便更准确的延时并且不阻塞cpu
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

27

主题

774

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1473
金钱
1473
注册时间
2013-4-12
在线时间
77 小时
发表于 2013-7-12 11:33:16 | 显示全部楼层
简单是多么的快乐,而快乐就因你而简单!微芯动力LTKKS
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-12 11:35:58 | 显示全部楼层
回复【楼主位】mvip:
---------------------------------
用OS.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2012-5-17
在线时间
3 小时
 楼主| 发表于 2013-7-12 11:38:29 | 显示全部楼层
回复【2楼】LTKKS:
你以为你在用FPGA吗?
---------------------------------
虽然stm32的速度不能和fpga相比,但我们在实际应用中要考虑这些事情。
用定时器做,就是状态指示太乱了。找个好的方法,去解决。
回复 支持 反对

使用道具 举报

27

主题

774

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1473
金钱
1473
注册时间
2013-4-12
在线时间
77 小时
发表于 2013-7-12 11:42:19 | 显示全部楼层
C语言是顺序语言,只有执行完上句才会到下句,系统挂后台可以实现你那种,但是你不可能写一个小代码也要弄一个系统吧?
简单是多么的快乐,而快乐就因你而简单!微芯动力LTKKS
回复 支持 反对

使用道具 举报

3

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2012-5-17
在线时间
3 小时
 楼主| 发表于 2013-7-12 11:45:16 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
用os进行分时处理,也是一个不错的办法。
回复 支持 反对

使用道具 举报

9

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2012-11-7
在线时间
35 小时
发表于 2013-7-12 15:29:41 | 显示全部楼层
可以看看我写的多定时器
http://www.openedv.com/posts/list/12126.htm
在需要的地方打开定时器,查询if(T_now==0x8000)表明定时时间到就可以执行你需要的动作了,当然你如果需要很精确地定时的话可能不行
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-7-12 15:51:20 | 显示全部楼层
回复【7楼】jswd:
---------------------------------
写得好复杂,看不太懂。直接一个记数器加上延时时间得到一个值,判断记数器是否到那个值不就行了。
业余程序玩家。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-7-12 15:52:51 | 显示全部楼层
可以考虑用protothreads
业余程序玩家。
回复 支持 反对

使用道具 举报

9

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2012-11-7
在线时间
35 小时
发表于 2013-7-12 16:27:42 | 显示全部楼层
回复【8楼】ofourme:
---------------------------------
我这个就是考虑多定时器用的,多个定时器可以同时使用互不干涉,这个比上os简单多了吧
回复 支持 反对

使用道具 举报

3

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2012-5-17
在线时间
3 小时
 楼主| 发表于 2013-9-14 21:52:53 | 显示全部楼层
回复【7楼】jswd:
---------------------------------
感谢分享,我得好好看看
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-13 03:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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