原创 【博客大赛】写程序上手很容易,但是想写好程序很难啊

2013-3-6 08:11 2656 16 30 分类: MCU/ 嵌入式

前些日子在车间调试一个产品,显示程序和通讯板程序是两个小朋友编的。两个小朋友都很能干,任务派给他们以后很快就拿出程序来了,我们车间一共放了10套装置,拿到新程序以后我们部长就让我烧到装置里,我说先别烧,拿个调试板挂在装置外面先试一下吧。结果把调试板装上装置就起不来了,换回原板没问题了,这说明是程序问题,打电话给小朋友,很快小朋友就改好又发来了,还没等我烧板呢,小朋友就来电话说先别烧,刚才发的程序不对,重新给我发,新发来的程序烧到调试板上还是有问题,反复改了1天也没调好。下班前部长不干了,打电话要他第二天直接到车间来改。第二天,小朋友来了以后很快就让程序正常运行起来了。以后的几天里,小朋友又回到公司本部,用电话遥控我烧程序,他改程序又改了约1个星期,这程序才基本没问题了。曾经有一次改完程序上到装置上就不能用,从装置上拿下来就能用,后来查找原因是他是从别的板上读定值,读来的定值是错的,但是他就按照错的定值执行,导致整个程序都不能运行了,后来给读定值的程序部分加上了限制读来的定值如果不在正常范围内就,用默认的定值执行。

经过这件事,说明了几个问题:

1.小朋友在来车间之前虽然手头也有调试板和仿真器,但是不了解现场情况,做出来的程序不符合实际,这是缺乏实践经验。

2.小朋友的马虎导致我改一次程序要反复烧几次,这个问题其实在写程序时候加上条件编译语句是完全可以避免的。

3.因为读到的定值不正确导致整个系统都不能用,这是因为对于从其它途径获得的数据不加验证,导致自己的程序不能运行。这个问题其实在做人机接口的时候也能遇到,如果人为的输入了不正确的定值导致程序死机或者跑飞,还得靠重烧程序才能解决。这说明小朋友写的程序不够严密。

这几个问题都是初学编程甚至是自认为是高手的人都经常遇到的,要想提高自己的编程水平,我认为首先要打好编程的基础,从编程的书写规范上下功夫,可以参考比如微软啦、华为了这些大企业的编程规范在网上都有流传,学编程一定要好好看看;其次是注意编程的严密性,因为虽然说用单片机做的嵌入式产品都叫智能XX,其实单片机很傻,你说什么它做什么,它自己根本不会分辨好坏,必须都由程序来控制,写程序要像法官讲法律条文一样严密,不然挑你毛病的不是原、被告,而是你自己的产品了;第三点,如果编程语言学得不透的话,不能乱用比较生僻的命令,我们知道C语言中的指针命令功能非常强大,但是如果用不好的话,程序跑飞了,你都不知道去哪找毛病,我看宁可用if也别乱用。

其实本人编程水平也不高,胡乱发表一些感想,请大家不要见笑,有不对的地方欢迎指正!有遗漏的地方欢迎补充!觉得有用请投票!

PARTNER CONTENT

文章评论14条评论)

登录后参与讨论

用户377235 2014-8-15 09:46

复杂程序的话,找专业服务公司;简单程序的话,自己人抽空干了就行,或者招聘新人;找新手不划算,本来很简单的事越干越乱。

用户377235 2013-6-6 12:41

呵呵,我就属于小朋友档次的

sunke9_998892717 2013-3-30 15:47

分工不同啊,总不能抢别人的饭碗啊。

用户377235 2013-3-28 13:37

你不是老朋友吗 怎么还被牵着鼻子走?

xucun915_925777961 2013-3-21 17:12

其实这是在测试环节出了问题,仿真调试,毕竟个体有限,有些参数什么的就考虑的不到位,这同时也说明,这两位小朋友确实经验不太足^_^

用户377235 2013-3-18 19:54

写地很好很实用

用户434549 2013-3-14 13:43

最好有具体的程序

sunke9_998892717 2013-3-12 16:51

前面两位的热心我替小朋友感谢一下!但是,现在的小朋友毕业就进办公室,没在车间待过,让他们在车间待上几天比出差还费劲呢。我们车间的环境也的确是艰苦,室内地面温度是0度~4度,没有坐的地方。

用户916854 2013-3-11 20:16

让小朋友自己跟进会好很多,一则掌握现场情况,再则学会应变,老朋友只要跟在后面点一下就好了,-----只有在水里才能学会游泳

用户377235 2013-3-8 15:50

是老朋友的项目说明不透彻,不怪小朋友!
相关推荐阅读
小可歌 2016-05-31 13:54
【转帖】模拟电路的四重境界
无意中看到这个文章,虽然自己也搞了4 年模电了,但后看完之后发现自己原来根本就没有入门阿!现发上来和大家共享!·············   复旦攻读微电子专业模拟芯片设计方向研究生开始到...
小可歌 2016-05-28 07:14
发帖庆祝用app inventor的录音机保存MP3格式录音成功!
看似简单的功能,可是把我难够呛,刚学APP INVENTOR没几天,手里的两本书翻来掉去的看了N遍。APP INVENTOR的录音机默认是保存录音文件为3GP格式,我想保存成MP3文件就没有地方找...
小可歌 2016-02-22 08:56
C语言Printf格式,调试最好的助手!
    C中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为...
小可歌 2016-02-19 15:19
对于SRAM的地址线和数据线是可以打乱顺序用的!!!!
因为SRAM的地址具有唯一性,其实数据线也有唯一性。 也就是A0~A18,D0~D15,都是唯一的。 正常是:A0~A18,接FSMC的A0~A18。 D0~D15,接FSMC的D0~D15. 假...
小可歌 2016-02-02 11:29
Linux系统下基本命令
Linux系统下基本命令: 要区分大小写  uname 显示版本信息(同win2K的 ver)  dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)  pwd...
小可歌 2016-02-02 11:28
DOS命令大全
对于一般的网民来说,dos命令是什么真的不知道,dos命令有些什么作用也不知道。但是黑客们却精通dos命令,经常利用dos命令进行各种任务,以达到自己的目的。下面笔者为大家汇总出dos命令大全,希...
我要评论
14
16
关闭 站长推荐上一条 /3 下一条