新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)應(yīng)用經(jīng)驗(yàn)

AVR單片機(jī)應(yīng)用經(jīng)驗(yàn)

作者: 時(shí)間:2011-03-04 來源:網(wǎng)絡(luò) 收藏


提高硬件可靠性的考慮:
.盡量采用片內(nèi)晶體、采用低頻率的系統(tǒng)時(shí)鐘、振蕩電路的輸出小幅度。
.選擇合適的啟動(dòng)延時(shí)參數(shù)
.使用BOD、片內(nèi)的看門狗
.合理休眠方式的使用
.不用I/O口設(shè)定輸出低電平
.利用內(nèi)部的EEProm和寄存器MCUCSR判斷復(fù)位標(biāo)志,進(jìn)行不同的處理

提高軟件設(shè)計(jì)的能力和水平:
  盡量合理采用高級語言設(shè)計(jì)編寫系統(tǒng)程序。有許多人認(rèn)為使用匯編寫程序比較精簡,而用高級語言開發(fā)會浪費(fèi)很多程序空間,其實(shí)這是一種誤解。對一個(gè)有經(jīng)驗(yàn)的,而且非常熟悉某種單片機(jī)的匯編高手而言,他是能寫出比高級語言更精簡的代碼。而對匯編不是很熟的開發(fā)者、或突然更換了一種新的單片機(jī),您能保證一定可以寫出比高級語言更簡練的代碼嗎?

高級語言的優(yōu)越性是匯編語言不能比的:
.程序移植方便
.程序的堅(jiān)固性
.數(shù)學(xué)運(yùn)算的支持
.條理清晰的結(jié)構(gòu)化編程,程序的可維護(hù)性。
.可協(xié)同開發(fā)軟件,開發(fā)周期短。
  現(xiàn)在的高級語言編譯器(如C編譯器)已可以產(chǎn)生代碼效率很高的機(jī)器代碼,因此建議大家能用高級語言實(shí)現(xiàn)的程序盡可能使用高級語言寫,在對速度和時(shí)序要求特嚴(yán)的場合可以采用混合編程的方法來解決。

更深入和全面的掌握各種串行通信協(xié)議的規(guī)程:
  嵌入式系統(tǒng)目前以大量的使用串行接口外圍芯片和各種通信接口,如RS232、兩線(I2C)、三線(SPI)、單總線、USB、CAN、TCP/IP等。開發(fā)人員和程序員應(yīng)了解低層協(xié)議,熟悉硬件怎樣和如何實(shí)現(xiàn)低層協(xié)議,如何定義可靠的上層應(yīng)用協(xié)議,以及低層協(xié)議驅(qū)動(dòng)同上層應(yīng)用協(xié)議之間的接口設(shè)計(jì)(中間層軟件的實(shí)現(xiàn))等。
  硬件工程師的軟件編寫能力要提高,采用標(biāo)準(zhǔn)程序編寫方式、完善的軟件整體框架的設(shè)計(jì)、良好的數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)系統(tǒng)。(計(jì)算機(jī)軟件專業(yè)的程序設(shè)計(jì)員對硬件不熟悉、大部分是在操作系統(tǒng)支持下編寫軟件,對低層接口和協(xié)議的驅(qū)動(dòng)層以及接口也不了解,往往也編寫不出好的單片機(jī)系統(tǒng)程序。)

通信接口的編寫應(yīng)盡量
.采用中斷+緩沖區(qū),
.分層+結(jié)構(gòu)化設(shè)計(jì),
.盡量不使用輪循方式(降低AVR的效率)。參見URAT(RS232)驅(qū)動(dòng)+中間層軟件示例。

采用好的系統(tǒng)設(shè)計(jì)模式:
  盡量不使用傳統(tǒng)的前后臺(中斷)系統(tǒng)設(shè)計(jì)模式,任務(wù)之間相互影響和干擾,無法定時(shí)操作。如設(shè)計(jì)一個(gè)采用動(dòng)態(tài)掃描方式驅(qū)動(dòng)的8位LED數(shù)碼管顯示+動(dòng)態(tài)掃描的4*4矩陣鍵盤。
  采用TimeTip+狀態(tài)機(jī)設(shè)計(jì)+CASE結(jié)構(gòu),實(shí)現(xiàn)多任務(wù)并行運(yùn)行系統(tǒng)設(shè)計(jì)方法。或時(shí)間觸發(fā)式的系統(tǒng)設(shè)計(jì)。(見:《時(shí)間觸發(fā)嵌入式系統(tǒng)設(shè)計(jì)模式》中國電力出版社 2004.6)
  移植小型嵌入式操作系統(tǒng),如UCOS-II。在網(wǎng)上有些免費(fèi)的基于AVR的簡潔的操作系統(tǒng)。

提高C語言的編程能力和軟件應(yīng)用水平:
  熟悉和用好C中的數(shù)據(jù)結(jié)構(gòu)體、指針應(yīng)用、內(nèi)存管理等較高級的應(yīng)用。
  熟悉和了解你所使用的高級語言開發(fā)平臺的特點(diǎn)。這些平臺是針對某一類處理器的,包含許多特殊的不兼容的語句和擴(kuò)展的結(jié)構(gòu)、語句、函數(shù)等。盡管使用方便,但由于其不透明性和時(shí)間的不確定性,因此要合理使用。如C中的getchar()、putchar()等。
  AVR有多個(gè)開發(fā)平臺,每個(gè)都有其特點(diǎn)和不足。能夠綜合使用這些平臺,相互互補(bǔ),能夠提高開發(fā)效率。如通過ICC、CVAVR的程序生成器CodeWizard學(xué)習(xí)和了解AVR的硬件設(shè)置,簡化計(jì)算,快速的生成程序基本模塊,如“一個(gè)URAT(RS232)低層驅(qū)動(dòng)+中間層軟件示例”。

本文引用地址:http://www.butianyuan.cn/article/172960.htm

上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉