高手談談單片機編程思路
我曾經做過兩年的單片機產品,在對單片機編程的過程中逐漸形成了一個大體固定的整體框架,也可以說是編程思路?,F提出來供大家參考。
首先,對外圍芯片進行分類,屬同一功能或同一芯片的程序采用模塊化的形式,用固定的幾個函數實現,一般不同芯片之間的函數功能盡量不重疊,也不要使用一個函數覆蓋幾個芯片,以便于后期的調試,如果涉及到芯片之間通訊的,可以單獨列出,使用專門的函數進行處理;
其次,將單片機中需要完成的工作按輕重緩急進行分類,一般我會設置兩個定時中斷,其中一個定時時間大致在20mS左右,用來處理一些按鈕防抖處理、時間日期計算、對輸入處理后產生對應標志位、器件刷新等一些實時性要求不是很高,但必須有時間要求的事物處理,另外設立一個定時中斷大概在1mS以下,主要用來實現時鐘基準和做一些實時性要求很高的操作,一般需要將實時性要求較高的定時中斷設置為高優(yōu)先級,否則不能實現正常運行,如果還有串行中斷需要處理,則需要嚴格控制實時中斷中的代碼長度,以免耽誤串行中斷的處理,還有就是如果使用軟件實現串口及無線通訊軟解碼的場合,也要合理分配各部分的代碼長度;
最后,將普通的事件檢測和處理以及響應放在主程序體中實現,該部分一般只需要幾個并行的函數就可以了,主程序體可以以簡單的幾行代碼實現。
本人采用以上結構開發(fā)了若干個單片機產品,包括包含無線軟解碼的無線防盜報警主機、RS485中繼器(一拖100)、帶中文顯示的報警接收機等,都實現了穩(wěn)定有效的運行。
希望本人的一些體會會能給大家有所幫助!
編輯:admin 最后修改時間:2018-05-18