📄 00000000.htm
字号:
∶<i> 这样写单片机程序有什么好处。 </i><br />∶<i> 中断1,2,3。。。->置位或写状态字<-无限循环,查询状态位,启动程序 </i><br />∶<i> 能不能举个例子,说明一下这样写程序的理由呢? </i><br /> <br /> <br />-- <br />According to the system log, windows had already started, but <br />it seems to be murdered mysteriously! :-DDDDDDDD <br /> <br /> <br />※ 来源:·BBS 水木清华站 smth.org·[FROM: 66.75.17.82] <br />发信人: neuronlee (机械化神经元), 信区: Embedded <br />标 题: Re: 又一道嵌入试题! <br />发信站: BBS 水木清华站 (Fri Nov 9 11:10:44 2001) <br /> <br /> <br />是呀,定时时限太短空耗许多CPU时间,太长又不能保证及时响应. <br />【 在 wangyyff (郁闷的大面瓜) 的大作中提到: 】 <br />∶<i> 为什么频繁中断就会把系统搞死?说说看 </i><br />∶<i> 精确定时?系统的实时性何在? </i><br /> <br /> <br />-- <br />According to the system log, windows had already started, but <br />it seems to be murdered mysteriously! :-DDDDDDDD <br /> <br /> <br />※ 来源:·BBS 水木清华站 smth.org·[FROM: 66.75.17.82] <br />发信人: hongchen (kissing-fire), 信区: Embedded <br />标 题: Re: 又一道嵌入试题! <br />发信站: BBS 水木清华站 (Fri Nov 9 18:58:31 2001) <br /> <br /> <br />【 在 wangyyff (郁闷的大面瓜) 的大作中提到: 】 <br />∶<i> 为什么频繁中断就会把系统搞死?说说看 </i><br />这只是我个人的经验,因为以前做工控的时候,如果频繁中断,系统程序 <br />很容易跑飞,而且一旦强电磁干扰来,使用中断程序比使用查询方式更容易 <br />死机。不信你可以找个大电动机试试。大电动机的电磁 脉冲瞬间浪涌电流 <br />导致的尖峰脉冲,不过是千伏级。而BC类设备电磁兼容性测试时,加的电压 <br />可以到5000V。这时候程序如果是使用中断方式,很容易发生程序指针某位 <br />翻转。但是如果使用顺序执行的程序,就不容易发生这种情况。而且现场 <br />的控制方式往往使用数字电路,或者使用极低级的单片机来做核心的控制。 <br />实际上就是按一个固定的流程来启动程序。 <br />∶<i> 精确定时?系统的实时性何在? </i><br />频繁中断情况下,使用精确定时,当然可以保证系统的实时性,因为只有当 <br />CPU需要外设工作,或者需要外设数据时,才会启动设备,所以由CPU根据预先 <br />设定的工作流程,通过精确定时来启动外设,这样做比让外设频繁发送中断, <br />在系统的可靠性和稳定性上会好一些。当然如果只是消费类的普通民用设备, <br />你用中断和查询两者之间没有差别,只取决于你自己的爱好,或者为了团队 <br />编程方便。 <br />但是如果是一个工控项目,或者是象我这种高可靠性的设备,我想恐怕没有人 <br />会使用频繁中断这种方式的。不信你可以去问问看。 <br /> <br />-- <br /> <br />※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.60.132] <br />发信人: wangyyff (郁闷的大面瓜), 信区: Embedded <br />标 题: Re: 又一道嵌入试题! <br />发信站: BBS 水木清华站 (Mon Nov 12 08:27:40 2001) <br /> <br /> <br />【 在 hongchen (kissing-fire) 的大作中提到: 】 <br />∶<i> 这只是我个人的经验,因为以前做工控的时候,如果频繁中断,系统程序 </i><br />∶<i> 很容易跑飞,而且一旦强电磁干扰来,使用中断程序比使用查询方式更容易 </i><br />∶<i> 死机。不信你可以找个大电动机试试。大电动机的电磁 脉冲瞬间浪涌电流 </i><br />∶<i> 导致的尖峰脉冲,不过是千伏级。而BC类设备电磁兼容性测试时,加的电压 </i><br />∶<i> 可以到5000V。这时候程序如果是使用中断方式,很容易发生程序指针某位 </i><br /> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <br />∶<i> 翻转。但是如果使用顺序执行的程序,就不容易发生这种情况。而且现场 </i><br />~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <br />说说看,为什么会这样?这个结论有什么理论依据?还是这个结论仅仅是你 <br />的个人经验总结?中断操作的软件编写肯定是比关掉中断查询对程序员的要求 <br />要高得多,所以……你有没有想过出现这种问题是因为你软件设计的问题? <br />别多心,我不是怎么怎么你,我自己在编写一些东东时也喜欢先关着中断试通 <br />一些外设,然后再试着用中断来搞,毕竟在中断时需要考虑的东东太多。 <br /> <br />∶<i> 的控制方式往往使用数字电路,或者使用极低级的单片机来做核心的控制。 </i><br />∶<i> 实际上就是按一个固定的流程来启动程序。 </i><br />∶<i> 频繁中断情况下,使用精确定时,当然可以保证系统的实时性,因为只有当 </i><br />∶<i> CPU需要外设工作,或者需要外设数据时,才会启动设备, </i><br />我的天哪,如果每个做工控的人都这么考虑自己的设备,工控岂不是比PC还好搞? <br />不好意思,我还真没搞过工控,门外汉,不多嘴了^_^ <br /> <br />∶<i> 所以由CPU根据预先 </i><br />∶<i> 设定的工作流程,通过精确定时来启动外设,这样做比让外设频繁发送中断, </i><br />∶<i> ................... </i><br /> <br />-- <br />===================================================================== <br />新域名启动: <br /> 英文版:<a href="http://www.cfly.org">http://www.cfly.org</a> <br /> 中文版:<a href="http://wangyunfei.yeah.net">http://wangyunfei.yeah.net</a> <br /> <br /> ARM (32位RISC) + RTEMS (完全FREE的军用操作系统), <br /> <br /> <br />※ 来源:·BBS 水木清华站 smth.org·[FROM: 203.93.105.209] <br />发信人: hongchen (kissing-fire), 信区: Embedded <br />标 题: Re: 又一道嵌入试题! <br />发信站: BBS 水木清华站 (Mon Nov 12 12:11:02 2001) <br /> <br /> <br />【 在 wangyyff (郁闷的大面瓜) 的大作中提到: 】 <br />∶<i> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </i><br />∶<i> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ </i><br />∶<i> 说说看,为什么会这样?这个结论有什么理论依据?还是这个结论仅仅是你 </i><br />∶<i> 的个人经验总结?中断操作的软件编写肯定是比关掉中断查询对程序员的要求 </i><br />∶<i> 要高得多,所以……你有没有想过出现这种问题是因为你软件设计的问题? </i><br />∶<i> 别多心,我不是怎么怎么你,我自己在编写一些东东时也喜欢先关着中断试通 </i><br />∶<i> 一些外设,然后再试着用中断来搞,毕竟在中断时需要考虑的东东太多。 </i><br />为了搞清楚这个问题,我曾经把图书馆里所有相关的书籍,都翻了个编,然后把 <br />手头上ADC的光盘中的所有应用资料与之相关的部分,都看了一遍。EMC问题可以 <br />说是电路里最复杂的问题,虽然我一直都在这个问题上不断收集资料,但是仍然 <br />不敢说就对这个问题有很好的理解,只能说入了一点门吧。 <br />可能普通人很难想象,你的电路板放到一个大电动机旁边,平常工作的很好,但是 <br />在大电动机启动瞬间,或者电磁继电器阵列开启瞬间,你的电路板总线上全是1, <br />还有,如果你使用地址线的低位,做地址选通,你可能经常访问不了你的外设, <br />因为经常这些位在随机翻动。 <br />其实原因很简单,Ldi/dt,一个小的电感,任何导线,或者说电路中的任何东西都 <br />有电感,而i=q/t=cu/t,di/dt=cdu/dt,任何电路中的东西都有电容,自己有节 <br />电容,寄生电容,耦合电容,对其他东西有分布电容,或各种各样的杂散电容, <br />这些电容最终导致了位移电流的产生,这是你不管用什么样的屏蔽,都无法彻底去除 <br />的,这个电流的变化,最终通过电感会产生电压。其实所有设备都有一个电冲击 <br />上限,民用设备一般也就是1000多伏左右,一个1000多伏的电脉冲产生的电磁波, <br />就足以让你的电路板上某些总线,或数字电平,全为1了。 <br />中断方式,你的程序指针会跳变,而且是硬件产生的突发性跳变,这也就意味着 <br />无穷的频率分量,频带无限宽,因为这是一个冲击或阶跃,这个时候,虽然你的 <br />电路可能正常时工作很好,但是在外界干扰和自身电磁波干扰下,某一位地址发生 <br />翻转,这是完全可能的,虽然概率很低。理论上虽然这种概率很低,可是实际情况中, <br />这种概率一点也不低。一个月中间有那么一两次,你说是低还是高。对于我这行中 <br />的监护仪,监护的都是要死的人,它一个月死机一两次,你说是高还是低? <br />但是顺序执行的程序,程序指针只是随主频逐个增加。相对而言,自身的干扰会 <br />小一些。 <br />以上仅仅是我的一些想法。因为实际中曾经出现过这样的问题,而且我老是遇到 <br />设备死机的问题,还经常要去修,所以自己在这上面,下过一些功夫去琢磨。也就是 <br />后来对于没有通过EMC检测的CPU是一点兴趣也没有。 <br />至于程序问题,我觉得也有,因为不用嵌入式操作系统的监护仪,就特别皮实,而 <br />用了嵌入式操作系统的监护仪就老死机。我就曾经想,是不是嵌入式操作系统降低 <br />了设备的可靠性。因为嵌入式操作系统程序太过复杂,而且实际上不停的在中断程序, <br />启动程序,所以我认为这也是降低设备可靠性的一个原因。 <br />为此,对嵌入式操作系统一直持怀疑态度。最近因为想到了解决 <br />的方法,才开始考虑嵌入式系统这个方案了。 <br />∶<i> 我的天哪,如果每个做工控的人都这么考虑自己的设备,工控岂不是比PC还好搞? </i><br />∶<i> 不好意思,我还真没搞过工控,门外汉,不多嘴了^_^ </i><br />工控好不好搞,我举一个你最熟悉的例子。XX做的大型集装箱检测系统,为什么现在 <br />装备的不多,一个很重要的原因,就是因为XX的系统在自己的公司,检测什么问题都 <br />没有,可是一装到人家那里,先是设备不工作,接着就是三天两头出问题,以至于要 <br />请我认识的一个人,去现场指导,而我认识的这个人,其实是个销售,因为看的多了, <br />有很丰富的实际经验。人家问我,说为什么XX做的东西,你们自己都搞不定! <br />我无言以对! <br />工控和PC最大的区别是,工控是一个随时随地都要保证可靠工作的东西,而PC是一个 <br />随时随地都可能死机的东西。 <br />就好像我做的这个东西,随时随地都得考虑,它是不是能稳定可靠的工作,死机了 <br />怎么办,出故障怎么办?PC很好办,重启,大不了按电源,可是好多设备,尤其是 <br />军用的,工控的,医用的,你不能这么办? <br />这也就是为什么学生时候做的东西,被人称之为“玩意”,而不是产品,一个真实的 <br />产品,它可能很简单,但是为了得到这个简单的设计,可能几代人的努力,仅仅只是 <br />为了得到它! <br />说得太多了,别见怪啊! <br />愚人之见! <br /> <br />-- <br /> <br />※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.60.132] <br />发信人: wangyyff (郁闷的大面瓜), 信区: Embedded <br />
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -