搜索
bottom↓
12
返回列表 发新帖
楼主: t2397362

我认为,程序里delay()用得越少,编程水平越高,你认为呢?

  [复制链接]

出0入98汤圆

发表于 2012-3-29 02:05:41 | 显示全部楼层
用黑盒盲测对比两种编程风格(用delay和不用delay)性能
把两个写好程序的MCU作为黑盒来看
在外部输入一样 MCU响应也完全一样的话 性能上可以看作是一样的

如果两个黑盒性能一样 那么开发周期的比较就显得有意义了

LZ认为两种编程风格哪个开发周期更短?

出0入0汤圆

发表于 2012-3-29 07:45:50 | 显示全部楼层
和水平无关,具体情况具体对待.

出0入0汤圆

发表于 2012-3-30 21:54:57 | 显示全部楼层
用状态机写可以不用一个delay函数,不过那个程序读起来就太累了。。所以写之前最好做一个状态迁移图,以后维护自己看着也容易点。

出0入0汤圆

发表于 2012-3-30 22:06:05 | 显示全部楼层
直接写机器码的,必然是高手。。。。

出0入0汤圆

发表于 2012-3-30 22:09:47 | 显示全部楼层
的确 delay和goto语句一样,用的好的都是高手,用不好都是祸害

出0入0汤圆

发表于 2012-3-30 22:14:43 | 显示全部楼层
mS以上的延时,现都采用时间事件定时器,以确保系统性能

出0入0汤圆

发表于 2012-3-30 22:59:19 | 显示全部楼层
根据任务的执行时间,划分不同任务的优先级和执行顺序,就可以合理安排程序的运行顺序,从而达到时间可控

出0入296汤圆

发表于 2012-4-4 21:08:08 | 显示全部楼层
Etual 发表于 2012-3-29 01:07
呵呵,可能你不用汇编吧,我用汇编写些稍微复杂点的状态机就烦的想死,主要是标号太多了,一个 switch 和 ...

要先画状态图啊……我基本不用汇编的。我认识一个做汇编的学长……他写万行级别的汇编程序轻轻松松,他结论和你一样,状态机携代码不好调试。我最近正在对他洗脑,哈哈哈,也许能成功。
先画状态图,再翻译成代码;修改代码先修改状态图,这是我认为的比较靠铺的状态机环境下的开发方式。

出0入0汤圆

发表于 2012-4-4 21:10:08 | 显示全部楼层
一分为二,尽量少用!否则实时性无法保障!

出0入0汤圆

发表于 2012-4-5 03:17:49 来自手机 | 显示全部楼层
窃以为整体框架方能体现水平,单纯抠一个延时实在太……

出0入0汤圆

发表于 2012-4-5 07:41:33 | 显示全部楼层
短时间比如uS级我还是会用地

出0入0汤圆

发表于 2012-4-5 08:41:07 | 显示全部楼层
ms级以下的延时,还是用Delay。

出0入0汤圆

发表于 2012-4-5 08:45:43 | 显示全部楼层
外围低速设备 例如 LCD 高手说说 要不要等待

出0入0汤圆

发表于 2012-4-5 08:47:30 | 显示全部楼层
我觉得说这个没有意义吧,delay和编程水平有什么关系?能在短时间写出可维护,够用,合理的程序就是高手,个人观点

出0入4汤圆

发表于 2012-4-5 09:23:04 | 显示全部楼层
先理清程序运行流程, 如果程序较小(<16K)使用系统节拍(定时器)+状态机就可以了.如果程序大了,控制器资源也够的情况下,可以考虑上简易的OS。当然了,如果延时粗度很高的又很短的情况下,可以使用软件延时或单独开一个定时器做延时。以上纯属个人遇见。

出0入0汤圆

发表于 2012-4-5 09:40:08 | 显示全部楼层
14楼分析得好,中肯

出0入0汤圆

发表于 2012-4-5 09:49:04 | 显示全部楼层
穿插执行任务看似很NB,但是某一部分需要修改,然后完蛋啦……

如果不是极端环境,慎用啊。

一直听到的教诲是:时间和可维护才是最重要的,可以牺牲部分硬件。

出0入0汤圆

发表于 2012-4-5 10:10:18 | 显示全部楼层
学习中。

出0入0汤圆

发表于 2012-4-5 10:14:26 | 显示全部楼层
wxws 发表于 2012-3-25 15:09
多用用状态机嘛

状态机是正解。
-----------------我是分割线----------------------
MCU正在向快速发展,再用DELAY把速度拉下来,完全是相反的两个方向。当然适度的使用是可以的,毕竟有些器件和场合不能高速运行。

出0入0汤圆

发表于 2012-4-5 11:30:42 | 显示全部楼层
一般我也不用延时和死循环,但是我写的都是小程序
网友rclong说的不错,老板不看这些,只看开发费用和开发时间

出0入42汤圆

发表于 2012-4-5 11:59:04 | 显示全部楼层
代码能够丝毫不动的复制到另一个项目中.  不重复的编写同样的代码 才有意义.  至于用什么语句不关键.  

出0入0汤圆

发表于 2012-4-5 12:12:02 | 显示全部楼层
我写的4个数码管和4个按键的电子钟程序,能设置时间,动态显示,没有使用延时。

出0入0汤圆

发表于 2012-4-5 12:41:36 | 显示全部楼层
能满足实时性要求 用了也无妨

出0入0汤圆

发表于 2012-4-5 14:10:50 | 显示全部楼层
你们常用delay()吗

出0入0汤圆

发表于 2012-4-5 15:15:02 | 显示全部楼层
我也是极少用delay()的.多数用状态机.

出0入0汤圆

发表于 2012-4-5 15:31:25 | 显示全部楼层
没有绝对的优劣。

出0入0汤圆

发表于 2012-4-5 15:31:47 | 显示全部楼层
没有绝对的优劣。

出0入0汤圆

发表于 2012-4-5 15:32:24 | 显示全部楼层
不能一概而论吧?看情况了……该用还是要用。
比如在等待一个信号稳定,或者说不确定信号已经稳定,需要那么几十个周期的等待,那就用延时。比如要等待100多毫秒甚至1秒,那就要用其他方式了。
个人觉得在保证时效性的前提下,能用延时就用,如果为了那么点CPU效率而来回跳转程序我觉得很麻烦,不利于阅读分析代码。

出0入0汤圆

发表于 2012-4-5 15:34:44 | 显示全部楼层
如果实时性要求高的尽量不用延时

出0入0汤圆

发表于 2012-4-5 15:48:31 | 显示全部楼层
哦,俺一般不用delay()的,俺一般用yanshi()

出0入0汤圆

发表于 2012-4-5 16:37:04 | 显示全部楼层
我觉得OS才是以后的方向,程序肯定月越来越庞大的

出0入0汤圆

发表于 2012-4-5 16:48:42 | 显示全部楼层
不一定吧,没什么可说的,这帖回的主要是为分

出0入0汤圆

发表于 2012-4-5 18:31:10 | 显示全部楼层
对于延时,还是避免原地等,要边跑边等。

出0入0汤圆

发表于 2012-4-6 11:03:47 | 显示全部楼层
Goselff 发表于 2012-3-25 18:07
我个人认为,delay()使用在两种情况下:
第一种情况:需要短时间延时。这种情况出现在驱动层较多,涉及到对 ...

顶一个!高手的见解就是精辟!有时候要延时us级,用RTOS的delay只有ms级的,用定时器要操作配置一大段代码,这段代码的时间都不好算了,倒不如直接延时。

出0入0汤圆

发表于 2012-4-6 11:18:30 | 显示全部楼层
程序经得起考验的就可以,没有必要做这样的讨论。
实时的掌握系统具体运行过程,没有必要因为延时的问题纠结。
我是比较现实的程序玩家了!

出0入0汤圆

发表于 2012-4-6 17:19:40 | 显示全部楼层
我認爲用不用delay,跟水平是沒有關係的。之所以用delay,是因爲我(或者說產品)需要用。不用delay,那你用甚麼?
打比方說,我們每天上下班,坐車時,大腦就在調用delay函數。有人說,我不,我不delay。那你坐車的時候做甚麼呢?你發脾氣能讓車馬上到站嗎?你可能可以聽聽歌,玩玩遊戲,但這跟單純的delay有區別嗎?

出0入0汤圆

发表于 2012-6-13 15:42:23 | 显示全部楼层
写驱动 遇到一些时序时当然要使用。用Delay也是有讲究的

出0入0汤圆

发表于 2012-6-14 10:30:49 | 显示全部楼层
没有人举例说明

出0入0汤圆

发表于 2012-6-14 12:34:23 | 显示全部楼层
我写代码就几乎不用死等的延时。

出50入0汤圆

发表于 2012-6-14 12:44:47 | 显示全部楼层
跟水平无关

出0入0汤圆

发表于 2012-6-14 18:56:54 | 显示全部楼层
存在就是道理,垃圾放对了地方,就是资源

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-8-25 12:19

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

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