新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430單片機開發總結

        MSP430單片機開發總結

        作者: 時間:2016-08-17 來源:網絡 收藏

          1.#i nclude<>指要在編輯器設定目錄下,#i nclude""指的是在當前工程目錄下。

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

          2.要調用另一個文件中的函數,要把這個函數文件放到當前工程目錄下,并且在工程中添加此文件。

          3.命名中不能有-,比如:byq-ee會認為是錯誤的,要用下劃線。

          4.用軟件仿真時,可以加入變量,如果是查看I/O信息只需加入PXIN,PXOUT即可。

          5.在處理字符時,要注意,是字符處理結尾標志,他和其他編輯軟件是不同的。比如我們長用字符處理回

          自動在結尾處加,但有些是不加的,這就要十分注意。

          6.如果只用到LFX1的低速時鐘,9600bit/s傳輸的話,接收會出現問題,原因是誤差太大,可以設置到4800以下。

          7.在寫FLASH時要注意其工作頻率在257K~476k之間,如果不是,則會出現錯誤。而且FLAGH只能寫入0,這樣就出現了

          必須先擦除在寫入的模式。

          8.當IO口作為輸入時,要根據平時的狀態加電阻,平時為高時,加個上拉電阻,平時為低時加個下拉電阻以增加穩定性。

          9.在FLASH寫時一定要關外部中斷。

          10.一般是不要RC復位的,一般只要接個100K左右電阻就可以了,如果要加電容,它的大小要根據以下兩個標準

          選擇:

          下載程序不會出現下載不了

          程序上電會能穩定復位

          11.用&表達式作為判斷時,不要忘記加括號。

          12.不要使用中斷嵌套。

          同時,為了使用C語言來編寫的高質量代碼需要注意。

          微處理器一般用于特定環境和特定用途,出于成本、功耗和體積的考慮,一般都要求盡量節省使用資源,并且,由于微處理器硬件一般都不支持有符號數、浮點數的運算,且運算位有限,因此,分配變量時必須仔細。另外要說明的是,速度和存儲器的消耗經常是2個不可兼顧的目標,在多數情況下,編程者必須根據實際情況作出權衡和取舍。

          需要注意的事項如下:

          1) 通常在滿足運算需求的前提下,盡量選擇為變量定義字節少的數據類型。

          比如最常用的int和char,int是16位的,char是8位的,如果沒有必要,不要使用int,而且使用char也最好使用unsigned char。運行時,可以在變量窗口看到,使用類型為unsigned char的變量是16進制的格式,而使用int的是十進制格式,如果char沒有定義為unsigned,會出現負號,如果沒有必要的話,在430中是不需要負數的。

          2) 盡量不用過長的數據類型,如long、long long和double

          3) 的C編譯器不支持位尋址,所以運算中盡量減少位操作,對于只有“是”和“否”的變量,如果RAM容量允許,則可分配為unsigned char類型,可提高運算速度。如果分配為某字節的某個位,可以減少存儲器的消耗,但是會降低運算速度

          4) 避免使用浮點數,盡量使用定點數進行小數運算。如果必須使用浮點數,則盡量用32位的float,而不是64位的double

          5) 盡量將變量分配為無符號數據類型

          6) 對于指針變量,如果聲明后其值不再改變,則聲明為const類型,這樣編譯器編譯時能更好的優化生成的代碼

          7) 盡可能的使用局部變量而非全局變量或者靜態變量(static)。這樣有利于編譯器編譯時更好的優化生成的代碼

          8) 避免對局部變量使用 &取地址符。因為這樣會使編譯器無法把此變量放在CPU的寄存器中,而是放在RAM中,從而失去了優化的機會

          9) 僅在模塊內使用的變量聲明為static,有利于優化代碼

          10) 如果堆棧空間有限,盡量減少函數調用的層次和遞歸調用

          11) 如果傳送參數過多,可將參數組成一個數組或者結構體,然后用指針傳遞

          12) 某些變量在中斷程序和普通級別程序中都會被用到,所以必須加以保護。

          將變量聲明為volatile類型,編譯器優化時就不會移動它,對它的訪問不會被延遲。

          為保證對volatile的變量不被打斷,為此,可以在訪問它的部分(即訪問它的函數)前面加上__moniter的聲明



        關鍵詞: MSP430 IAR

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 高安市| 全南县| 华蓥市| 慈利县| 兴国县| 凌海市| 仁怀市| 奉新县| 昭通市| 盖州市| 聊城市| 资中县| 武清区| 闽清县| 靖安县| 浦东新区| 吉安县| 商水县| 吉水县| 崇阳县| 永嘉县| 洪洞县| 门源| 鹤山市| 辰溪县| 宁波市| 穆棱市| 麦盖提县| 开江县| 肇东市| 阿坝县| 信丰县| 霍城县| 莱芜市| 岫岩| 平舆县| 台东县| 达拉特旗| 永城市| 宝鸡市| 三河市|