軟件其實是硬件的符號,用程序計數器PC指針把每一個硬件操作以一定的順序串接起來的。所以,從這點上來講,在微觀領域,在同一MCU內部,沒有同時的概念,只有先后的概念。然而,由于我們的MCU一般來說速度很快,起碼是微秒數量級,這樣,比20毫秒(50HZ)更快的多個信號反應,在我們的感覺上來講似乎是“同時”發生的,這是一種錯覺。在開發軟件當中,我們常常會不知不覺地利用這種錯覺。
另外,我們在學習寫軟件過程中,往往會把主要精力放在學習指令集上,這個也是一種不太恰當的方式。指令集固然重要,但只要掌握主要的指令運用,基本上可以完成程序的編寫,對于初學階段的軟件工程師,不必過于追求完美,了解指令集的全部內容。不理解的地方,適當查閱就可以達到目標。總之,軟件最重要的一定是在寫的過程中去學習、體會、提升。
程序開發,其實跟寫文章搞創作很類似。首先必須先花部分時間去思考和構思,初學者可以先寫程序框圖,即所謂的提綱,把主題結構和細節編排規劃好,再動手寫。在沒有做好這些準備工作之前,千萬不要急于動筆,否則會事倍功半,到頭來程序經常推倒重寫,浪費大量時間。實際上,對于軟件工程師來說,熟練以后,程序款圖最好不必畫在紙上,而是畫在心里,一切深深地記在腦海中。這是因為,在寫作過程中,都是圍繞著這個框圖展開的。就如開車時沒法拿著地圖查閱,地圖必須裝在司機的腦海里,樂譜不是靠臨時看才能奏出好樂章,而是藏在音樂家心里,這樣音樂與音樂家才能渾然天成一體。
在程序開發中,還有要注意的是格式的工整和可讀性,要有適當的注釋,便于今后查閱和其他人的借鑒學習。其實可讀性里可以引申出許多道理,我們結合細節里去講解。 |