搜索
bottom↓
回复: 21

一般程序中用到while等待的地方都要做超时退出处理么?

[复制链接]

出0入0汤圆

发表于 2013-12-31 21:28:11 | 显示全部楼层 |阅读模式
程序中用到while等待的地方都要做超时退出处理么?

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

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

出0入0汤圆

发表于 2013-12-31 21:30:10 | 显示全部楼层
你会等你的女神一辈子吗?

出0入0汤圆

发表于 2013-12-31 21:40:55 | 显示全部楼层
楼上的真幽默……

出0入0汤圆

发表于 2013-12-31 21:47:38 | 显示全部楼层
有必要,鉴定完毕。

出0入0汤圆

发表于 2014-1-1 08:14:26 | 显示全部楼层
lanqilove 发表于 2013-12-31 21:30
你会等你的女神一辈子吗?

有可能为情所困,最后出家了。。。。

出0入10汤圆

发表于 2014-1-1 08:22:54 | 显示全部楼层
lanqilove 发表于 2013-12-31 21:30
你会等你的女神一辈子吗?

经典。。。

出0入0汤圆

发表于 2014-1-1 08:24:38 | 显示全部楼层
WHILE(条件)
DO  WHILE(条件)

不满足条件就退出。

还可以用超时。

出0入0汤圆

发表于 2014-1-1 09:16:37 | 显示全部楼层
必须啊,不然卡死了怎么办!

出100入0汤圆

发表于 2014-1-1 09:36:57 | 显示全部楼层
lanqilove 发表于 2013-12-31 21:30
你会等你的女神一辈子吗?

单片机会              

出0入0汤圆

发表于 2014-1-1 19:31:47 | 显示全部楼层
要看功能了……

出0入0汤圆

发表于 2014-1-1 19:34:50 | 显示全部楼层
loop:ljmp loop;

出0入0汤圆

发表于 2014-1-1 20:35:31 | 显示全部楼层
可以不用while啊,改成状态机的思路去做,另参考《时间触发嵌入式OS》那本书,任务相互之间不会阻塞,某个任务不满足条件的话,该任务会停留在某个阶段,但不会导致其他任务无法执行!

出0入0汤圆

发表于 2014-1-1 23:28:29 来自手机 | 显示全部楼层
coleyao 发表于 2014-1-1 20:35  可以不用while啊,改成状态机的思路去做,另参考《时间触发嵌入式OS》那本书,任务相互之间不会阻塞,某个 ...

上层程序可以这样做,但是如果遇到像等待flash发命令成功这样的,一般来说器件不出问题等待时间很短,跑去做其他事情下次回来间隔也太长了,而且有些场合下不等待它通过也干不了其他事情.

出0入0汤圆

发表于 2014-1-2 08:09:32 | 显示全部楼层
fshunj 发表于 2014-1-1 23:28
上层程序可以这样做,但是如果遇到像等待flash发命令成功这样的,一般来说器件不出问题等待时间很短,跑去做 ...

时间不长用短延时机制delay(us),内部用for(i=0;i<n;i++)  nop;(要求高的可以关掉滴答中断)  长延时用滴答时钟的整数倍就好了。
使用时间触发嵌入式机制,只要精心调试,适用范围还是很广的,并非是一种仅供入门的鸡肋而已,我在STM32F051上写的程序,可以做到RS485100k bps收发+18B20测温 etc,当然效率比不上直接的前后台操作,不过代码的重复使用效率应该是高了很多的。

出0入0汤圆

发表于 2014-1-2 08:16:57 | 显示全部楼层
之前做个测量转速的玩意的时候,琢磨了N久,把前面代码给删了,加了超时机制进去,用的状态机的方法。
所以……别傻等了,很有必要

出0入0汤圆

发表于 2014-1-2 08:26:09 | 显示全部楼层
unsigned int i=0;
while((条件1)&&(i<退出次数))
{
   //---------------------------------------------
   //要做的事

   //----------------------------------------------
   i++;
}

出0入0汤圆

发表于 2014-1-2 08:28:51 | 显示全部楼层
状态机的思路很好  可以向这方面考虑一下

出0入0汤圆

发表于 2014-1-2 12:12:50 | 显示全部楼层
应该如此,否则可能死机

出0入0汤圆

 楼主| 发表于 2014-1-29 23:19:10 | 显示全部楼层
CelestialBeing 发表于 2014-1-2 08:16
之前做个测量转速的玩意的时候,琢磨了N久,把前面代码给删了,加了超时机制进去,用的状态机的方法。
所以 ...

能否稍微细说说?

出0入17汤圆

发表于 2014-1-30 00:18:46 | 显示全部楼层
看需求,简单的程序不需要。
通常看门狗就够了

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-8-26 09:15

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

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