社区
Linux/Unix社区
帖子详情
需要精度达到1~2ms的延时,请大家帮忙
beni
2006-08-29 02:43:02
由于需要一个线程处理大量的数据,所以要求延时不能超过2个毫秒,否则数据会丢失;
或者有同样精度的定时器也可以。
linux 2.4的内核select只能到10ms的精度,满足不了要求,定时器也是同样的精度。
听说利用cpu的中断可以实现,但是没找到。
请问各位大侠,如何实现?或者有什么其它替代方案?
先谢谢了!
...全文
332
11
打赏
收藏
需要精度达到1~2ms的延时,请大家帮忙
由于需要一个线程处理大量的数据,所以要求延时不能超过2个毫秒,否则数据会丢失; 或者有同样精度的定时器也可以。 linux 2.4的内核select只能到10ms的精度,满足不了要求,定时器也是同样的精度。 听说利用cpu的中断可以实现,但是没找到。 请问各位大侠,如何实现?或者有什么其它替代方案? 先谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
键客野猪
2006-09-01
打赏
举报
回复
推荐用 RTAI 这样的系统,一个实时的核,将linux内核作为一个低优先级的进程跑。可以自己订制一下。
chailei0252
2006-08-31
打赏
举报
回复
usleep(1000)
就是延时1ms
godgogogo
2006-08-31
打赏
举报
回复
usleep() 可以精确到微秒
beni
2006-08-31
打赏
举报
回复
呼唤~~
beni
2006-08-30
打赏
举报
回复
struggleyb:2.4的内核也能修改中断频率吗?怎么修改?
gettext:我们的客户要求用RedHat 9.0,呵呵
gettext
2006-08-30
打赏
举报
回复
用实时操作系统
struggleyb
2006-08-29
打赏
举报
回复
建议 可以修改内核的HZ , 来调高时钟中断频率,从而获得更高的精确度
beni
2006-08-29
打赏
举报
回复
pselect试过了,因为内核的分片机制的原因,最大精度也是10ms。就像windows下面的Sleep(1)其实是15个ms一样。但是,windows下面有多媒体定时器,所以可以解决这样的问题。linux下面我就一直很郁闷。
fytzzh
2006-08-29
打赏
举报
回复
pselect 可以实现纳秒的定时。
c51语言双层for循环
延时
2ms
,Keil_C51_for循环精确
延时
.docx
for循环实现C语言精确
延时
(晶振12MHz,一个机器周期1us.)
2ms
延时
子程序void delay
2ms
(void){uchar i,j,k;for(i=5;i>0;i--)for(j=8;j>0;j--)for(k=25;k>0;k--);}10ms
延时
子程序程序:void delay10ms(void){uchar i,j,k;for(i=5;i>0;i--)fo...
c51语言双层for循环
延时
2ms
,51单片机利用for语句嵌套实现简单的
延时
1s功能
原标题:51单片机利用for语句嵌套实现简单的
延时
1s功能51单片机利用for语句嵌套实现简单的
延时
1s功能名词解释:(1)时钟周期。定义为时钟频率的倒数,本例使用12MHz的时钟频率,它的时钟周期大约就是1/12μs。(2)机器周期。单片机的基本操作周期,STC89C51系列的单片机来说,一个机器周期由12个时钟周期组成,也就是1μs。(3)指令周期。指的是单片机执行一条指令
需要
的时间,一个指令...
HAL_Delay()
延时
误差约1ms的问题
问题: 测试端口输出方便用HAL_Delay()发现
延时
始终存在1ms的偏差,1ms
延时
是1.99ms,
2ms
是,如后面的图所示: http://www.ing10bbs.com/forum.php?mod=viewthread&tid=2317 https://www.shangmayuan.com/a/2b860e61dd114889bc021cdd.html 原因: 扒了一下HAL_Delay()的源码发现这个地方wait多加了一个数值uwTickFreq,这个宏最后对应的数值为1,所以就是多
STM32使用HAL库自带
延时
函数HAL_Delay时存在1ms误差
最近要在stm32f103上写一个pwm编解码程序,要对pwm脉宽进行精确计时,无意间发现使用HAL库自带
延时
函数产生的
延时
存在+1ms的误差,即: HAL_Delay(x); 实际
延时
时间为(x+1)ms 比如在主循环中加入程序: HAL_Delay(1); HAL_GPIO_TogglePin(LED_GPIO_Port, GPIO_PIN_13); 烧录程序后使用示波器观察方波波形: 可以看到方波周期为4ms,相邻跳变之间的时间差为
2ms
,存在+1ms的误差 实际使用中如果
延时
时间为几百
c语言pic
延时
1ms程序,几个
延时
子程序
/**************************************
延时
时间为:8*i+10 us要求
延时
1ms i=124时
延时
为1002us 误差2us
2ms
i=249时
延时
为2002us 误差2us**************************************/void delay(unsigned char i){for(;i>0;--i);}/**...
Linux/Unix社区
23,121
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章