硬着头皮做完那个“赶着鸭子上架”的项目,我居然能编程了
时间:18/06/04

入行之初,我并没有从事单片机编程,而是一直做上位机程序,就是在windows系统中做应用程序,大概做了半年。我和三位同学打算开发电视台的播控系统,并且成立了一个工作室。我当时觉得这个项目挺有希望,于是一起租了办公室。

 

陈建做项目管理已经很多年,最初几年也做过程序员负,他责产品的策划、项目管理、市场推广。我协助陈建做市场推广工作,同时负责产品的测试以及文档的编写。其余两位已经有10年的程序设计经验,算是是资深的工程师,自然负责产品的研发,也就是code。

 

我们的系统中需要一台视频切换器,陈建联系了西X大的申老师帮我们完成了产品设计。刚开始时一切都进行的比较顺利。但是从0开始搞产品大家都是头一次,脱离公司的成熟平台和自己搭建平台做事区别非常大。

 

首先是人力的问题,以前人力紧张只需提出需求,HR就可以负责完成大部分招聘工作。工程师能力不够,只需调整工作任务或者岗位就能搞定,至于用人成本问题就交给老板考虑了。现在我们这个团队刚开张,只有三台电脑四个人,更换或者增加人手不现实。要在现有人力基础上完成整个系统工作,时刻清楚每件事情的轻重缓急,紧张有序的安排整个项目顺利进行,统筹工作的难度不是一般的大。

 

其次是资金问题。以前资金问题完全是老板去考虑,房租、水电、物业、打扫卫生都有人负责。现在小到一支圆珠笔、一张纸完全需要我们考虑。要保证现有资金枯竭之前完成产品上市并获得利润,否则这个工作室随时可能散伙。

 

最后就是项目存在的问题比想象得更复杂、更琐碎、更耗费精力。陈建以前是研发部经理,兼任市场部工作。因为他是高层领导,所以很多工作都交给项目组长完成。对于他来说解决问题的逻辑非常简单,只需要提出一个指导意见,就会有人来负责完成。但是现在他就是项目组长,需要他自己发现问题来解决,原来解决问题的过程是如此的一波三折。

 

一切问题汇聚到一点就是money的问题。虽然现在资金不至于马上枯竭,当家方知柴米贵。陈建希望节省每一分钱,随着项目研发推进,不断切换器的功能不断提出新的需求。必须给申老师增加研发费用。而且这个问题什么时候是尽头暂时还不明了。陈建希望我们可以顶替申老师的工作,完成切换器软件的升级工作。其余两位工程师是有power没时间,研发工作已经让他们够累的。陈建的日常工作安排的非常紧张,漫观天下只有我有时间。但是一方面我编程能力非常非常一般,另外一方面我接触单片机也不多,电阻、电容等基本元器件我也不清楚。但是在目前情况下我最适合,因为我有时间,而且写过一点点程序。

 

 

申老师的代码是2.5K行,找到main( )函数后我开始一行行浏览。切换器的功能我非常清楚,刚开始几天我可以打电话请教申老师。但是不久申老师参与了国家航天项目,实在没有精力来指导我了。我只能更根据破译密码的原则,10%靠理解,其余90%只能靠猜了。一行行死扣代码,我竟然支撑了两次对切换器功能的更新。

 

播控的测试工作非常耗费时间,特别是稳定性的测试。需要稳定播出100小时以上的节目单。刚开始我拷贝了很多VCD作为测试节目源,顺便看了几部电视剧。到后期系统越来越稳定了,我就不用死盯着电视机了,但是必须守着机器,时间就更充分了。

 

申老师的代码本来是一个完整的系统,经过我的几次修改已经千疮百孔了。如果再做大的修改已经掌控不了。我计划自己来完成整个系统代码的重新构建。恰巧有位朋友送给我一块周立功的dp-51的学习板,学习板附带一本书,书名大概是《增强型51处理器入门与实战》。

 

于是守着机器我开始学习51编程。飞利浦的P89C58虽然已经是增强型单片机,但是外设还是比较少,板子可以做LED、数码管、串口等试验,内容确实不多。但是没有人指导,在开始阶段一个学习效率很低。当第一个LED开始闪烁我激动了好半天,十几行代码我玩味了一个上午。第一个例子通过标志着开发环境搭建已经完成了,后面的例子跑起来就非常顺了。

 

我从网上采购了烙铁、镊子、松香、酒精、万用表。在电子市场采购了单片机、电阻、电容、LED、max232、万用版、各色电线等材料。AT89S52已经不需要烧写器了。买了一个并口的下载器。我以前从来没有摸过烙铁,所以事情进展非常慢。花费几个通宵搭建了一个单片机的最小系统。一切非常粗糙,焊点经常不是虚焊就是断开,不过最后勉强可以使用了。这次的折腾我初步掌握了烙铁的使用和温度控制,认识了几个元器件。

 

我彻底抛开了申老师的代码。根据当前的功能需求一步步构建自己的切换器代码。虽然切换器的功能不复杂,我也写过一点代码。但毕竟没有硬功夫,设计完全没有章法。但还是勉强完成了软件的编写。而且在申老师的硬件上运行,一切表现良好。

 

几个合伙人因为我没有影响本职工作,也没有动用一分钱公共财物完成了该项系统,为我们以后的系统功能扩展奠定了基础,而对我大加赞赏。虽然代码非常烂,但是功能符合项目需要。以后可以根据同事的要求随时更新。陈建表示虽然解决的不够完美,但是我们自己已经掌握了方法,即使不够完美也是好方法,一言蔽之到手铜远胜隔手金。

 

我们的播控系统集成切换器上市后,产品整体表现良好。算是我的功夫没有白费。

 

工程师的职责是解决问题,但是问题永远解决不完。有客户需要16路的切换器,其实完全可以使用8路切换器串联解决。但是客户需要将播控集成在一辆汽车里,空间有限。陈建感到以后市场空间比较大,提出设计一款16路的切换器。该项工作由申老师来完成最合适,但是申老师出国了,暂时没有合适的人承接。

 

我在申老师办公室见过他和同事画PCB。前一阵学习单片机也对PCB有了感性认识。我采购丁字尺、三角板。画了一张4U机箱开孔图。在书店买了一本有关DXP2004的书籍。该书附带一张光盘,有6个小时的教学视频。内容非常详细,我照书从原理图、封装、过孔、线、覆铜一步步学习,半个月以后我竟然设计了一块16路切换器的PCB。

 

收到板子后,我采购元件。才发现我不会贴片元件的焊接。TQFP的管脚间距太密了。有朋友在电脑城维修笔记本电脑。我找他帮我焊接,朋友很热情,表示不是大事。但是最后发现他小瞧这件事情了。维修一台笔记本主要任务是判断故障,焊接的工作很少。但是现在完全是焊接工作。一块板子上的焊点已经超过他一年的工作量了,而且他本身不是焊接工人,所以速度非常慢。他干活时我只好在一旁端茶递水。六块不大的板子两天勉强完成。朋友突然提出了一个问题。


“骆驼,你这块板怎么安装?”
“怎么啦?”
“四角没有安装空,没法安装……”晴天霹雳!我确实疏忽了。“我刚才比对了一下,你的四个角刚好没有元件和电路,我打四个3毫米的孔就行了。”

 

好在产品是安装在机箱里。手工打孔虽然不美观,但是不碍大雅,总算没有浪费掉。写软件我也不在行,但是总比PCB好一些,花了半个月时间勉强完成了软件编写。

 

在以后几年里设计切换器就成了我的附加工作,一共做了六七款产品。我们的合作结束后,为了一家的生活,我从事了单片机的程序工作。

 

前几天清理杂物时我翻出几块电路板,看完我心想:这是谁做的?为啥做得如此槽糕?我看来好半天,发现板子的上丝印是CAMEL。我将板子赶紧扔在垃圾袋里。设计如此槽糕的东西竟然卖了出去赚钱!我忏悔吧!整理抽屉发现了一个U盘。打开浏览,竟然发现了当年我编写的一个切换器的项目,打开发现真是惨不忍睹。我都怀疑如此槽糕的代码怎么卖出去的!我再次忏悔了一把。

 

不忘初心,方得始。过去的已经过去,既然知道以前的不如人意,就尽力把把当下事情做好。

 

与非网原创内容,未经允许,不得转载!


 

0
相关文章
相关留言
写留言...
微信公众号
长按二维码关注"米格实验室"微信公众号