搜索
bottom↓
回复: 17

硬件操作正在进行时,时间片中断会不会影响

[复制链接]

出0入0汤圆

发表于 2010-5-6 16:56:58 | 显示全部楼层 |阅读模式
有一问题请教各位:OS的中断20mS的话,如果操作I2C总线发生在刚发生时间片中断到来时,那岂不出问题,是否需要在操作硬件时序的时候关闭OS的时间片中断呢?谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2010-5-10 10:36:25 | 显示全部楼层
回复【楼主位】xjjiang  
-----------------------------------------------------------------------

自己顶一下,上述的情况还没有出现,只是怕出现我就头就大了,在关键的地方我都有关OS心脏,完了再开,但这个疑问在心中一段时间还没有找到原因

出0入0汤圆

发表于 2010-5-28 23:36:59 | 显示全部楼层
如果是有硬件I2C单元,完全不用担心,但如果是模拟时序(bit banging),从理论上说,是肯定要出问题的,只是概率大小而已。

出0入0汤圆

发表于 2010-5-28 23:58:02 | 显示全部楼层
楼主既然用了时间片,那么请问你的任务是在 main 里呢??还是在这个时间片的定时器中断里?
如果是前者,可以在优先级上控制下(先执行哪一个);
如果是后者,某些开发环境可能会直到中断结束之后才能跳出来。

所以俺只会在定时器中断里安排耗时极少的代码。

出0入0汤圆

发表于 2010-5-29 01:04:54 | 显示全部楼层
如果是软件模拟I2C的话,还是建立关掉中断,操作完了再开中断的好

虽然被打断可能性很好,不过一旦出现打断的情况,那问题就大了

使用优先级控制,不太可行。硬件中断总是比任务的优先级要高

出0入0汤圆

发表于 2010-5-29 03:02:33 | 显示全部楼层
回复【3楼】huayuliang 花生
楼主既然用了时间片,那么请问你的任务是在 main 里呢??还是在这个时间片的定时器中断里?
如果是前者,可以在优先级上控制下(先执行哪一个);
如果是后者,某些开发环境可能会直到中断结束之后才能跳出来。
所以俺只会在定时器中断里安排耗时极少的代码。

-----------------------------------------------------------------------

技巧吧~~~~~~  我有时 在定时器理~~放一堆代码 或者只放个 标记的东西  在回来主程序这 检查标记

出50入0汤圆

发表于 2010-5-29 11:30:46 | 显示全部楼层
在模拟I2C时序时,关闭系统中断 操作完毕 马上开中断,这样可以保证I2C的操作可靠性

出0入0汤圆

发表于 2010-5-29 14:10:57 | 显示全部楼层
回复【5楼】jrcsh  邪恶的小会会
回复【3楼】huayuliang 花生
楼主既然用了时间片,那么请问你的任务是在 main 里呢??还是在这个时间片的定时器中断里?
如果是前者,可以在优先级上控制下(先执行哪一个);
如果是后者,某些开发环境可能会直到中断结束之后才能跳出来。
所以俺只会在定时器中断里安排耗时极少的代码。
-----------------------------------------------------------------------
技巧吧~~~~~~  我有时 在定时器理~~放一堆代码 或者只放个 标记的东西  在回来主程序这 检查标记
-----------------------------------------------------------------------

对,就是这么处理。这样基本上就不会耽误系统时钟了。。尤其是有看门狗的时候。

出0入0汤圆

 楼主| 发表于 2010-6-1 19:40:37 | 显示全部楼层
回复【3楼】huayuliang  花生
楼主既然用了时间片,那么请问你的任务是在 main 里呢??还是在这个时间片的定时器中断里?
如果是前者,可以在优先级上控制下(先执行哪一个);
如果是后者,某些开发环境可能会直到中断结束之后才能跳出来。
所以俺只会在定时器中断里安排耗时极少的代码。

-----------------------------------------------------------------------

uCOS中用的,任务是独立的,时间片只是做任务的裁决.定时器中断中是OS的操作代码是很少的,谢谢!

出0入0汤圆

 楼主| 发表于 2010-6-1 19:41:56 | 显示全部楼层
回复【3楼】huayuliang  花生
楼主既然用了时间片,那么请问你的任务是在 main 里呢??还是在这个时间片的定时器中断里?
如果是前者,可以在优先级上控制下(先执行哪一个);
如果是后者,某些开发环境可能会直到中断结束之后才能跳出来。
所以俺只会在定时器中断里安排耗时极少的代码。

-----------------------------------------------------------------------

另外不知道3楼你是用什么OS做内核实现一个开发平台?

出0入0汤圆

发表于 2010-6-1 21:36:15 | 显示全部楼层
没有具体的。只是在使用这种思想。
尝试过的倒是不少,可这方面还不如你呢。

正打算用 QP。这个东西已经开源了。

出0入0汤圆

发表于 2010-6-1 21:41:36 | 显示全部楼层
如果硬件操作指硬件外设独立操作,比如IIC主机读取什么数据,那么一般不会有影响。如果是硬件外设的从机,比如MCU当IIC从机,那么需要注意,可能导致失败。

软件模拟时序,主机的话,看能不能Hold,IIC,SPI主机是可以Hold的,这些就没事儿。模拟UART这样的时序敏感,那就不合适。当从机需要分析时序。

总之,具体问题具体分析。

出0入0汤圆

 楼主| 发表于 2010-6-2 11:31:08 | 显示全部楼层
回复【11楼】dr2001  
如果硬件操作指硬件外设独立操作,比如iic主机读取什么数据,那么一般不会有影响。如果是硬件外设的从机,比如mcu当iic从机,那么需要注意,可能导致失败。
软件模拟时序,主机的话,看能不能hold,iic,spi主机是可以hold的,这些就没事儿。模拟uart这样的时序敏感,那就不合适。当从机需要分析时序。
总之,具体问题具体分析。
-----------------------------------------------------------------------

请教:Hold什么意思?

出0入0汤圆

 楼主| 发表于 2010-6-2 11:33:25 | 显示全部楼层
回复【10楼】huayuliang  花生
没有具体的。只是在使用这种思想。
尝试过的倒是不少,可这方面还不如你呢。
正打算用 qp。这个东西已经开源了。
-----------------------------------------------------------------------

QP没用过,我现是是操作IIC时关内核,但郁闷的事是接收无线433MHz,OOK调制的,会影响接收灵敏度,呵呵!

出0入0汤圆

发表于 2010-11-2 17:27:16 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-11-7 18:25:34 | 显示全部楼层
i2c spi主机被中断暂停时没影响的。
本身这两种总线就是通过clk读取数据的。

出0入0汤圆

发表于 2010-11-7 20:06:50 | 显示全部楼层
MARK

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-8-26 08:34

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

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