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