软件其实是硬件的符号,用程序计数器PC指针把每一个硬件操作以一定的顺序串接起来的。所以,从这点上来讲,在微观领域,在同一MCU内部,没有同时的概念,只有先后的概念。然而,由于我们的MCU一般来说速度很快,起码是微秒数量级,这样,比20毫秒(50HZ)更快的多个信号反应,在我们的感觉上来讲似乎是“同时”发生的,这是一种错觉。在开发软件当中,我们常常会不知不觉地利用这种错觉。 另外,我们在学习写软件过程中,往往会把主要精力放在学习指令集上,这个也是一种不太恰当的方式。指令集固然重要,但只要掌握主要的指令运用,基本上可以完成程序的编写,对于初学阶段的软件工程师,不必过于追求完美,了解指令集的全部内容。不理解的地方,适当查阅就可以达到目标。总之,软件最重要的一定是在写的过程中去学习、体会、提升。 程序开发,其实跟写文章搞创作很类似。首先必须先花部分时间去思考和构思,初学者可以先写程序框图,即所谓的提纲,把主题结构和细节编排规划好,再动手写。在没有做好这些准备工作之前,千万不要急于动笔,否则会事倍功半,到头来程序经常推倒重写,浪费大量时间。实际上,对于软件工程师来说,熟练以后,程序款图最好不必画在纸上,而是画在心里,一切深深地记在脑海中。这是因为,在写作过程中,都是围绕着这个框图展开的。就如开车时没法拿着地图查阅,地图必须装在司机的脑海里,乐谱不是靠临时看才能奏出好乐章,而是藏在音乐家心里,这样音乐与音乐家才能浑然天成一体。 在程序开发中,还有要注意的是格式的工整和可读性,要有适当的注释,便于今后查阅和其他人的借鉴学习。其实可读性里可以引申出许多道理,我们结合细节里去讲解。
|