關(guān)于單片機(jī)代碼架構(gòu)分層
最近看了一個(gè)大神吳堅(jiān)鴻的文章,他的軟件架構(gòu)寫得還是不錯(cuò)的,但是代碼風(fēng)格一般,全局變量滿天飛,但開發(fā)出來的產(chǎn)品穩(wěn)定,性能也好。不管怎么說,在企業(yè)里,老板只追求結(jié)果,不追求過程,即使代碼寫得再不好,能實(shí)現(xiàn)功能就不錯(cuò)了。在這里,我借鑒他的“”三區(qū)一線理論“做下分析”。
[cpp] view plain copy print?
#include
void init();
void initial();
void delay_l(unsigned int ul);
void APK();
void main()
{
/* 注釋一:
* 專門用來初始化單片機(jī)自己的寄存器以及個(gè)別外圍要求響應(yīng)速度快的輸出設(shè)備,
* 防止剛上電之后,由于輸出IO口電平狀態(tài)不確定而導(dǎo)致外圍設(shè)備誤動(dòng)作,
* 比如繼電器的誤動(dòng)作等等。
*/
init();
/* 注釋二:
* 延時(shí)時(shí)間一般是0.3秒到2秒之間,等待外圍芯片和模塊上電穩(wěn)定。
* 比如液晶模塊,AT24C02存儲(chǔ)芯片,DS1302時(shí)鐘芯片,
* 這類芯片有個(gè)特點(diǎn),一般都是跟單片機(jī)進(jìn)行串口或并口通訊的,
* 并且不要求上電立即處理的。
*/
delay_l(100);
/* 注釋三:
* 專門用來初始化不要求上電立即處理的外圍芯片和模塊.
* 比如液晶模塊,AT24C02存儲(chǔ)芯片,DS1302時(shí)鐘芯片。
*/
initial();
/* 注釋四:
* while(1){}主函數(shù)循環(huán)區(qū)屬于鴻哥三區(qū)一線理論的第三區(qū),
* 專門用來編寫被循環(huán)掃描到的非中斷應(yīng)用程序
*/
while(1)
{
APK();
}
}
編輯:admin 最后修改時(shí)間:2018-05-18