搜索
bottom↓
回复: 14

在操作系统中如何实现us级的延时呢

[复制链接]

出0入0汤圆

发表于 2014-10-28 08:22:01 | 显示全部楼层 |阅读模式
请教大家一下,如果使用了RTX或者UCOS系统后,基本的时基是1ms,那么有的硬件驱动设计时需要延时几个us的时候,如何使用操作系统的实现呢。是单独用一个定时器来实现吗

出0入0汤圆

发表于 2014-10-28 09:20:29 | 显示全部楼层
5us 以下添加 nop 解决
5-50us 轮询timer的count寄存器,精度一般在1us左右
50us以上则可以考虑使用timer中断了,但误差可能在3~Nus(要看OS的中断延迟)

出0入0汤圆

发表于 2014-10-28 09:27:04 | 显示全部楼层
同问~~~一直用while来做us延时~~很不方便~~

出0入0汤圆

发表于 2014-10-28 09:31:11 | 显示全部楼层
标记。在操作系统中如何实现us级的延时。

出0入0汤圆

发表于 2014-10-28 09:33:08 | 显示全部楼层
EA=0;//关总中断
delayus(10);//延时
EA=1;//开总中断

出0入0汤圆

发表于 2014-10-28 09:36:34 | 显示全部楼层
等大牛出来,我也好奇,一直裸奔的路过

出0入0汤圆

发表于 2014-10-28 09:42:19 | 显示全部楼层
需要时就上定时器,操作系统自己不也是用定时器嘛

出0入0汤圆

发表于 2014-10-28 09:43:29 | 显示全部楼层
帮顶,最近在学习uCOS-II,等高手解答

出0入4汤圆

发表于 2014-10-28 11:05:03 | 显示全部楼层
1、要么查当前计数器的值(可以时基定时器也可以是另外的定时器)
2、要么单独使用另外的定时器,用完就关。

非常同意2楼的处理方法

出0入0汤圆

发表于 2014-10-28 11:08:44 | 显示全部楼层
用汇编写出延时

出0入0汤圆

发表于 2014-10-28 13:12:21 | 显示全部楼层
来学习一下,

出0入0汤圆

发表于 2014-10-28 13:50:24 来自手机 | 显示全部楼层
Delay(10)来做吧

出0入0汤圆

发表于 2014-10-28 13:59:17 | 显示全部楼层
也来学习一下

出0入0汤圆

发表于 2014-10-28 14:09:00 | 显示全部楼层
空等NOP就行了

出0入0汤圆

发表于 2014-10-28 16:44:01 | 显示全部楼层
时间长的一般用定时器吧,能把CPU释放出来
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 05:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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