⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000000.htm

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -