搜索
bottom↓
回复: 17

有没有RT-THREAD0.3.1内核关断中断的具体时间在STM32下?有个移植,要求必须短于2.5us

[复制链接]

出0入0汤圆

发表于 2011-1-17 16:23:24 | 显示全部楼层 |阅读模式
如题

出0入0汤圆

发表于 2011-1-17 16:45:44 | 显示全部楼层
这个要求做不到,这个时间太短了

出0入0汤圆

发表于 2011-1-17 16:57:01 | 显示全部楼层
gpfrank 需要这种中断时间?

出0入0汤圆

发表于 2011-1-17 16:58:56 | 显示全部楼层
直接用中断吧

出0入0汤圆

 楼主| 发表于 2011-1-17 21:17:33 | 显示全部楼层
是指内核关闭中断的临界时间。
因为我做100Khz的2路脉冲输出。也就是一个脉冲要10US,2个就是5US。如果5US的系统临界时间里无法响应,就要多发出脉冲了。

出0入0汤圆

发表于 2011-1-17 21:36:26 | 显示全部楼层
用STM32的多功能定时器去实现才是正道.不然即使中断响应不要时间.你的任务也是不好完成的.
一个系统如何.只要用的OS不是太菜.瓶颈都不在OS上面.

出0入0汤圆

发表于 2011-1-17 21:42:05 | 显示全部楼层
2.5us,这个要求似乎只有都江堰系统能做到

出0入0汤圆

发表于 2011-1-17 21:54:22 | 显示全部楼层
回复【5楼】aozima  
用stm32的多功能定时器去实现才是正道.不然即使中断响应不要时间.你的任务也是不好完成的.
一个系统如何.只要用的os不是太菜.瓶颈都不在os上面.
-----------------------------------------------------------------------

是的,这样的需求应该合理的利用硬件,如果2.5us都去处理输出脉冲,软件基本上不用干什么事情了。

出0入0汤圆

发表于 2011-1-17 22:51:53 | 显示全部楼层
在RTT系统中,关闭中断一般需要多长时间啊

出0入0汤圆

发表于 2011-1-18 02:27:13 | 显示全部楼层
做PLC如果还打算用操作系统,那就不要做了,除非西门子的300以上的cpu,多处理器协作。

出0入0汤圆

 楼主| 发表于 2011-1-18 15:10:31 | 显示全部楼层
回复【9楼】heky  
-----------------------------------------------------------------------

但是如果增加了USB,以太网,如果没有操作系统的支持,真的很费劲啊!

出0入0汤圆

 楼主| 发表于 2011-1-18 15:14:55 | 显示全部楼层
回复【7楼】ffxz  
-----------------------------------------------------------------------

可能您理解错误了。
并不是一直要2.5US里一直要执行。处理是很简单的,就是停止脉冲的输出。脉冲一旦开始输出,要求输出的脉冲个数,在停止是使用
中断。如果OS最差的关断中断的时间非常的长,那么就无法执行这个严格的任务了。
如果OS关断的中断不是全关闭,估计也可以。

KEIL自带的 RTX号称不关断中断。使用OS和使用无操作系统的应用一样在CORTEX-M3系列里。因为没有代码,所以也没细致研究。

出0入0汤圆

 楼主| 发表于 2011-1-18 15:27:44 | 显示全部楼层
回复【5楼】aozima  
-----------------------------------------------------------------------

使用多功能定时器,如果开启了100KHZ的脉冲输出,占空比50%的PWM,要求输出100个脉冲。采用主从定时器模式。另一个计数这个输出。
当输出达到100个的时候,从定时器中断,停止主的输出。完成100个脉冲的输出。
按照2路100KHZ,最差情况是5US的时间里,从定时器中断的停止输出脉冲的要求必须完成。如果OS采用的是全部关闭中断的办法,也关闭了从定时器中断。时间如果超过了2.5US。那么就有可能有第101个脉冲输出,那么就出现了误动作。

还有更好的方法吗?

出0入0汤圆

发表于 2011-1-18 15:28:04 | 显示全部楼层
回复【11楼】gpfrank  
-----------------------------------------------------------------------
建议您先不要使用RT-Thread.

出0入0汤圆

 楼主| 发表于 2011-1-18 15:34:45 | 显示全部楼层
回复【13楼】aozima  
-----------------------------------------------------------------------

谢谢!

有机会还是会使用RTT的。从RTT中学到了很多。

出0入0汤圆

发表于 2011-1-18 16:20:55 | 显示全部楼层
意思是,当另一个定时器中断来临时,系统必须立刻关闭脉冲输出,否则脉冲输出可能会多几个而导致问题。

解决方式:
- 另一个计数定时器的中断优先级提升到最高。
- 在系统中不要用非常多的OS定时器。

停止脉冲输出一定在计数定时器中断服务例程中完成。

在上面这种情况下,RT-Thread应该基本能够满足要求(RT-Thread绝大部分关中断时间<1us)。另外记住,一定要-O2编译。

出0入0汤圆

 楼主| 发表于 2011-1-18 20:11:30 | 显示全部楼层
回复【15楼】ffxz  
-----------------------------------------------------------------------

谢谢!
从定时器(计数定时器)中只处理关脉冲发送。没有其他处理。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-6 17:12

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

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