新闻  |   论坛  |   博客  |   在线研讨会
编程日记 —— 一名单片机程序员成长之路
zhchxgh | 2009-07-05 14:15:20    阅读:2074   发布文章

编程日记 —— 一名单片机程序员成长之路 
路漫漫其修远,吾将上下求索 


--------------------------------------------------------------------------------


1999-10-21(C51) 
    在C51中堆栈的分配是完全透明的,这固然减少程序员的编程任务,但对于单片机寸位寸金的RAM,这种透明又让人时感无奈。对于涉及堆栈的编程往往只能靠经验了和调试,所幸我的编程项目大多可靠性要求不是很高。对于堆栈的分配C51编译器还很弱智,程序编译连接都OK了,但程序运行时却一塌糊涂。今天就碰到一个这样的问题。
    今天编程很顺利,三下两除二便编完了程序,编译连接也OK了。心想今天可以多歇一下,到网上冲浪一番了,于是便一头扎进网中。几个小时后才想起还没最后整机调试,一看离下班不到两个小时了。赶紧拷片子连线,调试结果让我不知所措。程序对外部的信号也能反应,但就是得不到正确结果。快下班了,仍然没有什么进展,我只好坐下来慢慢分析程序,看着看着,当看到中断函数中调用了一个延时函数时,眼睛一亮——灵感来了,是不是堆栈出问题了呢?把延时函数屏蔽掉一试,哈,OK了!
    和老板汇报了一下,老板很高兴——又完成了一个项目!老板似乎越来越来相信我的技术了,可我这孤家寡人能成什么气候呢,只不过低水平重复劳动。我的老底我最清楚,不机不电,功底不厚,又闭门造车。唉,明年一定走人。 

--------------------------------------------------------------------------------


1999-10-16(VB) 
    今天一个怪问题让我忙乎了一天——公司工时结算软件不能进行九月工时统计。原先会计反应每月九号日工时不能查看打印,那时我查了一下数据库,有原始记录在,便排除打卡数据采集出问题的可能,但在我的机子上没有出现该问题,我就认为不是软件问题。现在月统计出问题,工资没办法算了,老板这才腾时间责成我搞定。软件前部分不是我编的,出问题也只会在前部分,可编者在香港,再说香港人值钱了。自从我来了,老板就没再请人编程了,可为老板省了许多钱,也不见意思一下。 
    我先在我的机子试了下,一切正常。看来这家伙也欺软怕硬!是不是机子问题呢?我又在其它机子装上运行也不行,又试了一部不行,一连试了三部都不行。这下该怀疑下软件了。在我的机子调试看来不行,于是换到另外一部机子调试。程序运行时没有出错,要发现BUG只有一步步调试了。由于对程序怀疑不够,所以调起来也不细致,至使调了半天毫无结果。最后目标定在一条条件判断语句上。
   If Format(ActiveDate, "short date") >=Format(DateAdd("d", 1, txtTo.text), "short date") Then
       bDisplayLine = False
   End If
看着这语句总觉有点怪,发现ActiveDate=#1999-9-1#且txtTo.text=“19999-9-30”时会执行 bDisplayLine = False ,这怎么可能呢。看来Format语句有问题,去掉Format一试,结果相反!F1下,得知Format返回STRING,哦,问题在这!FIND一下原程序竟然所有的日期比较都是如此!这程序为公司服务了两年了,不知以前怎么过来的。可为什么我的机子不出问题呢?乖乖,该不是Y2K吧,得,该下班了,交差再说。跟老板一说,老板连说“好,好”。“你可以下班了!”得! 
   

--------------------------------------------------------------------------------

C++Builder 正式成为工作语言
2000-03-06

    接触C++Builder也有半年了。半年前,老板拿了一个C++Builder原程序给我查一个问题。我没学过。这明摆着老板是在暗示我去学习下C++Builder。老板说,香港现在C++Builder开始比较流行了。说实话,VB还够我学的。没办法,只好挤时间去学学了。作为单片机编程员,我太累了,不仅要精通编程还要熟悉硬件。本来我就是半路出家的。学校教的那点东西只是皮毛。还好老板只教编程,硬件不太要我管。可有时候,有些隐蔽的硬件问题还是我发现的。
    用VB编程主机程序,是没什么问题,但是总会在一些关键的地方让人不知如何下手。VB本来不是针对控制领域的,但有易学,易用,开发速度快等许多优点。 当初学VB就是觉得它易学,能够快速领略一种成就感才选它的。我自学VB一个多月就赶马上阵了。VC我看了一本书,便没有兴趣再学下去了。不是怕它,而是没有太多时间耗在上面了。如果我是专编程,倒一定搞定它不可。哎,要学的东西太多了。实际最关键还是吃饭问题。现在社会是看你创造了多少价值,然后再给相应的报酬。有高深的学问,而不能恰当转化社会认可的东西,那社会的回报是不会高的。
    真用C++Builder做项目,才发现它很多方面比VB优秀。总的感觉它具有VB的易用,开发快,又有C++的简洁,对数据,WINDOWS内核的操作也随心所欲。以前一直听人说DELPHI的好处。PASCAL我学过,不过感觉不是很好。DELPHI也没去学了。C++Builder完全兼容DELPHI的代码。要掌握C++Builder还必须了解一下DELPHI,因为C++Builder继承了许多DELPHI许多优点。想想,这一改工作语言,又要学不少东西,可老板只给一个星期的准备时间。我已不太介意老板的什么了,但觉得也是个考验一下自己的好机会,也就尽力去学了。一个星期下来,做项目所需技术差不多有了谱。感觉还很好。自己的学习能力还是很好,而且有了转换工作语言的信心了。换一种编程语言,总是不会太舒服。这是心理定势造成的。以前,在VB与C51穿插编程时,总会有点别扭。不知不觉,语法就用错了。
    一天到晚都围着编程转,虽然人倒还充实,可总感到不是很踏实。毕业后,没去报到便到了深圳打工。我一直觉得象我这种人不是在打工,而是过属于自己的生活,但这种生活又那么单薄。社会并没给我们指明一条奋斗之路。我们和所有打工的没有什么区别。这个城市并不欢迎我们在这里休养生息,更多是作为一种剥削工具。如果有那一个城市能科学文明地治市,我想我肯定会弃深圳而去的。可惜,唱高调的多,做实事的少。一个在深圳工作居住十几年的人,却无权申请成为深圳的常住市民。这就是一种不公平。一个要成为世界花园城市的城市不仅要外表漂亮,更应该在法治,公平上也成为典范,否则得了,也只是名不副实。
    我总在想,为什么知识分子,这个词眼,总包含一种贬低的意味。以前我是痛惜中国知识分子的软弱无能。知识分子一直在脑海里是种不太好的形象。我以前觉得这是知识自己不争气。现在我渐感中国传统的陋习在侵害自己,我也是知识分子呀。为什么会这样呢,社会给知识分子的活动范围太窄了,而且又要面对许多用读书人感情无法处理的事。我的一个同学,厌恶学府陈腐的风气,不去考研。他说,在外面我的思维更活跃,没有学术压力。可我一直要他考研,因为我觉得在中国只有那些地方,社会才给出一块相对安静的地方。不是有象牙塔之说吗。他搞的数学物理很深奥的理论研究。他想学爱因思坦。我想中国是没有爱因思坦生长的土壤的。现在我这位同学面对的各种困难与问题越来越大了,社会是不会给与他支持的,可能一点理解都不给。我想起最近看到的一篇报道。有一个物理奇才,只因有其它几门功课不够好,不仅上不上大学,连他写的论文都没有人去认真理会。最后,美国一家大学招他去读博士。他的研究项目可能为之动用150亿美元。小时候,我很想当爱因思坦或爱笛生之类的人,并且总喜欢乱捣腾。可在社会的各种压力下,越来越来乖了,只做那些社会认可的事。学生时得高分就是好学生。想想真是可笑。小学,初中的学习成绩实际并不是很重要,关键是培养兴趣,活越的思维,良好的习惯。
    哎,照这样下去,我会渐失从事开发的兴趣了。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客