新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機應用經驗

        AVR單片機應用經驗

        作者: 時間:2011-03-04 來源:網絡 收藏


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

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

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

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

        通信接口的編寫應盡量
        .采用中斷+緩沖區,
        .分層+結構化設計,
        .盡量不使用輪循方式(降低AVR的效率)。參見URAT(RS232)驅動+中間層軟件示例。

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

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

        本文引用地址:http://www.104case.com/article/172960.htm

        上一頁 1 2 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 麦盖提县| 伊金霍洛旗| 东海县| 洛南县| 北安市| 五莲县| 奉节县| 杂多县| 浦县| 成都市| 当阳市| 冕宁县| 蒙阴县| 南和县| 深水埗区| 潮州市| 蓬莱市| 乐亭县| 嘉祥县| 柞水县| 中阳县| 徐闻县| 新宾| 西充县| 保山市| 黄大仙区| 柳河县| 峡江县| 淮滨县| 昌邑市| 天门市| 开平市| 邹平县| 黎平县| 芦山县| 凭祥市| 南漳县| 锡林郭勒盟| 柳河县| 铜梁县| 余干县|