OpenEdv-开源电子网

标题: 系统节拍1ms,但高精度的扫描频率是不是拖慢了系统? [打印本页]

作者: 束命    时间: 2016-11-24 10:21
标题: 系统节拍1ms,但高精度的扫描频率是不是拖慢了系统?
玩ucosiii第四天,正在把曾经的一个项目移植到系统上来。但其中一个任务是需要us级别的扫描频率,开定时器中断去处理,此时会关闭系统中断。这样频繁开关中断,不就干扰了系统节拍吗,导致实时性变差?请各位大神指教,在这种情况下有没有好的办法提高实时性。

作者: 操作系统    时间: 2016-11-24 13:12
测试一下,调试一上。应该有一个适中的值。

作者: 束命    时间: 2016-11-24 15:47
大拿在哪里,这个问题没人解答吗??
作者: 操作系统    时间: 2016-11-24 19:53
系统节拍提高,就是给操作系统运行的时间变多了。系统进出中断的时间多了。实际上 是 重复跑了很多没有用的代码。一般性的OS 用8MS,或者10MS的节拍。
作者: 束命    时间: 2016-11-25 09:03
顶起来这个问题,怎么没人回答啊,原子哥和其它的大神都去哪了???
作者: 束命    时间: 2016-11-25 09:19
再把我的问题说一下,系统节拍1ms,开一个50us的TIM中断,而在这个中断里要处理一些数据,这时候系统节拍是停止的。假如在TIM中断里运行时间需要1ms(当然不会这么长,只是为了说明这个问题,也没有DMA),那系统节拍实际不就是1ms+1ms吗?那这样的情况明显就是拖慢了系统,各位在项目中有没有遇到类似的情况,都怎么解决,请不吝赐教~!

作者: hyghyg1234    时间: 2016-11-25 10:13
束命 发表于 2016-11-25 09:19
再把我的问题说一下,系统节拍1ms,开一个50us的TIM中断,而在这个中断里要处理一些数据,这时候系统节拍是 ...

你50us的定时中断,处理任务自然不会超过50us,我认为不会影响到系统。另外ucos自己也有软定时器。
作者: 束命    时间: 2016-11-25 10:30
hyghyg1234 发表于 2016-11-25 10:13
你50us的定时中断,处理任务自然不会超过50us,我认为不会影响到系统。另外ucos自己也有软定时器。

是50us中断一次,但是不能保证中断函数里的处理时间就一定比50us小啊,另外系统软定时器达不到这么高精度~!
作者: 火透    时间: 2016-11-27 16:57
如果中断处理时间超过50us,那已经到了的50u中断请求也不会响应啊,因为你还没退出当前中断啊。所以不可能存在50us中断一次的
作者: lvehe    时间: 2016-11-28 09:42
本帖最后由 lvehe 于 2016-11-28 09:44 编辑

如果是50us中断一次,但不是每次中断的响应的时间都很长,是偶尔满足条件才会执行一次1ms的话,那么对系统的影响不会太大。但最好不要在中断中去执行1ms,而是应当发送一个信号量去通知某任务来处理。
我觉得你的这个中断太频繁了,可能不用操作系统会更好,因为操作系统经常会开关中断,多任务的话也可能要开关中断来保护数据等,如果关中断的时间超过50us,你的那个中断的响应就无法得到执行了。
作者: 束命    时间: 2016-11-28 09:55
lvehe 发表于 2016-11-28 09:42
如果是50us中断一次,但不是每次中断的响应的时间都很长,是偶尔满足条件才会执行一次1ms的话,那么对系统 ...

你的这个回复让我对操作系统有了更加系统的理解。一个星期,UCOS算是入门了,新移植的项目也正在试跑,3Q
作者: guo522129    时间: 2016-11-28 11:00
束命 发表于 2016-11-28 09:55
你的这个回复让我对操作系统有了更加系统的理解。一个星期,UCOS算是入门了,新移植的项目也正在试跑,3Q

你好! 我想问一下在你的50us中断里,是调用哪个函数去开关中断的?谢谢

作者: 束命    时间: 2016-11-28 13:10
guo522129 发表于 2016-11-28 11:00
你好! 我想问一下在你的50us中断里,是调用哪个函数去开关中断的?谢谢

OSIntEnter();关
OSIntExit();开
作者: guo522129    时间: 2016-11-28 14:30
束命 发表于 2016-11-28 13:10
OSIntEnter();关
OSIntExit();开

谢谢,我也是使用这个,不知道是程序的问题还是其他,好像不起作用。




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4