我們在任何程序開發過程中,總會碰到這樣那樣的問題,當然單片機程序開發也是如此,尤其是初級工程師在程序開發過程中總會犯錯,接下來我們簡單了解下這個實例,也許會幫到你。
While(1)
{
//上電進入主程序 或 觸發觸摸屏
//播放提示語音
Delay();//等待播放完畢
//讀取M1卡信息
Delay();//等待讀卡數據返回
//播放提示語音
Delay();//等待播放完畢
//M1卡數據交互,判定下一步操作及提示
Delay();//等待數據處理完畢
……
……
}
我們暫且不對其做出任何評價,但是可以看出這個工程師基本上對自己設計的產品沒有任何整體概念,或者可以說對自己開發的程序用到設計上會產生的實際效果根本不清楚。所以他觸犯了我們在程序開發過程中的幾個問題:
1.dalay這類函數只應該在實驗室驗證某個功能的過程中才會用得到,在實際產品開發時無論是主循環while中,還是其調用的函數中,亦或是中斷服務程序中絕對不可以用到。
2.產品設計的各個子模塊之間的邏輯關系太強,說實話我們一般都講究在產品設計中只有各個事件處理模塊間的邏輯關系弱化,才能夠更加靈活的進行處理。
3.沒有考慮到單片機本身是一個單核單任務的架構,每一個事件都會獨占CPU內核,當多個任務模塊同時存在時我們應該對各個事件進行區分,我們應當分情況、分事件實時性要求等區分對待。
所以針對這些,一名老工程師給初級工程師出了幾點建議:
1.單片機種類不要貪多,那么對于初學者來講,建議你好選擇一種單片機為主,把它學懂學精。
2.學的精比學的多好,一些資料看完之后只是懂個大概,倒不如踏踏實實安下心來吃透每個知識點,理解每個細節。
3.按需學習,單片機種類繁多,想要全部學會不可能,所以在實際工作中應該采取按需學習的模式。
4.能力比知識重要,能不能運用所學知識來快速解決問題,是衡量每個工程師能力高低的重要指標。
5.動手和看書同樣重要,其實看再多的資料,不去動手,也只是一只半解,所以動手能力真的很重要。
初級工程師常犯的幾點錯誤,你中標了沒?如果能夠很好的結合自身情況,這些錯誤是可以避免的。