<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AVR使用中應注意的一些問(wèn)題

AVR使用中應注意的一些問(wèn)題

作者: 時(shí)間:2013-11-04 來(lái)源:網(wǎng)絡(luò ) 收藏

提高硬件可靠性的考慮:

  • 盡量采用片內晶體、采用低頻率的系統時(shí)鐘、振蕩電路的輸出小幅度。
  • 選擇合適的啟動(dòng)延時(shí)參數
  • 使用BOD、片內的看門(mén)狗
  • 合理休眠方式的使用
  • 不用I/O口設定輸出低電平
  • 利用內部的EEProm和寄存器MCUCSR判斷復位標志,進(jìn)行不同的處理

提高軟件設計的能力和水平:

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

  高級語(yǔ)言的優(yōu)越性是匯編語(yǔ)言不能比的:

  • 程序移植方便
  • 程序的堅固性
  • 數學(xué)運算的支持
  • 條理清晰的結構化編程,程序的可維護性。
  • 可協(xié)同開(kāi)發(fā)軟件,開(kāi)發(fā)周期短。

  現在的高級語(yǔ)言編譯器(如C編譯器)已可以產(chǎn)生代碼效率很高的機器代碼,因此建議大家能用高級語(yǔ)言實(shí)現的程序盡可能使用高級語(yǔ)言寫(xiě),在對速度和時(shí)序要求特嚴的場(chǎng)合可以采用混合編程的方法來(lái)解決。

更深入和全面的掌握各種串行通信協(xié)議的規程:

  嵌入式系統目前以大量的使用串行接口外圍芯片和各種通信接口,如RS232、兩線(xiàn)(I2C)、三線(xiàn)(SPI)、單總線(xiàn)、USB、CAN、TCP/IP等。開(kāi)發(fā)人員和程序員應了解低層協(xié)議,熟悉硬件怎樣和如何實(shí)現低層協(xié)議,如何定義可靠的上層應用協(xié)議,以及低層協(xié)議驅動(dòng)同上層應用協(xié)議之間的接口設計(中間層軟件的實(shí)現)等。

  硬件工程師的軟件編寫(xiě)能力要提高,采用標準程序編寫(xiě)方式、完善的軟件整體框架的設計、良好的數據結構和程序結構系統。(計算機軟件專(zhuān)業(yè)的程序設計員對硬件不熟悉、大部分是在操作系統支持下編寫(xiě)軟件,對低層接口和協(xié)議的驅動(dòng)層以及接口也不了解,往往也編寫(xiě)不出好的系統程序。)

   通信接口的編寫(xiě)應盡量:

  • 采用中斷+緩沖區,
  • 分層+結構化設計,
  • 盡量不使用輪循方式(降低的效率)。參見(jiàn)URAT(RS232)驅動(dòng)+中間層軟件示例。

  采用好的系統設計模式:

  盡量不使用傳統的前后臺(中斷)系統設計模式,任務(wù)之間相互影響和干擾,無(wú)法定時(shí)操作。如設計一個(gè)采用動(dòng)態(tài)掃描方式驅動(dòng)的8位LED數碼管顯示+動(dòng)態(tài)掃描的4*4矩陣鍵盤(pán)。

  采用TimeTip+狀態(tài)機設計+CASE結構,實(shí)現多任務(wù)并行運行系統設計方法?;驎r(shí)間觸發(fā)式的系統設計。(見(jiàn):《時(shí)間觸發(fā)嵌入式系統設計模式》中國電力出版社 2004.6)

  移植小型嵌入式操作系統,如UCOS-II。在網(wǎng)上有些免費的基于的簡(jiǎn)潔的操作系統。

提高C語(yǔ)言的編程能力和軟件應用水平:

  熟悉和用好C中的數據結構體、指針應用、內存管理等較高級的應用。

  熟悉和了解你所使用的高級語(yǔ)言開(kāi)發(fā)平臺的特點(diǎn)。這些平臺是針對某一類(lèi)處理器的,包含許多特殊的不兼容的語(yǔ)句和擴展的結構、語(yǔ)句、函數等。盡管使用方便,但由于其不透明性和時(shí)間的不確定性,因此要合理使用。如C中的getchar()、putchar()等。

  有多個(gè)開(kāi)發(fā)平臺,每個(gè)都有其特點(diǎn)和不足。能夠綜合使用這些平臺,相互互補,能夠提高開(kāi)發(fā)效率。如通過(guò)ICC、CVAVR的程序生成器CodeWizard學(xué)習和了解AVR的硬件設置,簡(jiǎn)化計算,快速的生成程序基本模塊,如“一個(gè)URAT(RS232)低層驅動(dòng)+中間層軟件示例”。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: AVR 單片機 下載線(xiàn)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>