阅读:1651回复:6
还是老问题,如何用软件实现微秒级的时钟中断
这个问题老是有人说
就是没人解决:((((((((( |
|
沙发#
发布于:2004-12-23 19:43
这个问题老是有人说 关键是你是否要进行调度,如果需要,微秒级不太现实,如果你使用循环方式,可以很精确,但是CPU使用很大 |
|
|
板凳#
发布于:2004-12-24 09:57
我现在做的是激光打标。。
就是每次加工要延时100us在往控制卡输出数据(因为要协调计算机和控制部分速度),控制卡没中断源 只能用软件实现 现在是把ring3关掉,就是不想应用户层的响应,把键盘中断全关了。。所有东西在内核级做 可是效果不理想:((((((( 我找了个老外写的可以达到1us中断源程序 可是看不懂:(((((((((( |
|
地板#
发布于:2004-12-24 17:37
这个是底层的东西了,和CPU结合的非常紧密,你应该看看
CPU的数据手册,了解如何使用定时器,直接用汇编来写。 纯粹的C语言是无法实现1us的定时的。 |
|
地下室#
发布于:2004-12-25 20:42
直接写8253控制器.定时精度可以很高的!1/10M.
|
|
5楼#
发布于:2004-12-27 09:27
有改cmos时钟的
有改8253的 可又没例子呀 这都有人说过 可由人做过没?? 8253win98有人做过,也有程序 可不知2000下有人做过没? |
|
6楼#
发布于:2004-12-28 13:26
现在一般是8254了
我写过8254上实现精确到1/100ms延时代码,好像是达到了windowsxia利用计时器能达到的精度的极限。 winnt 9x下的主要不同点是,对8254设置的工作方式不一样,有的是方式2速率波(98,xp),有的是方式3方波(dos,2k)。所以还要先判断工作模式 如果还要考虑8253,那还要判断是8253还是8254,很麻烦 可以考虑coms实时钟中断,1024次/s,但我没用过 |
|