<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è) > 嵌入式系統 > 設計應用 > 使用MSP430需要注意的問(wèn)題總結

使用MSP430需要注意的問(wèn)題總結

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò ) 收藏
1. #include<>指要在編輯器設定目錄下,#include""指的是在當前工程目錄下。

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

本文引用地址:http://dyxdggzs.com/article/201611/316958.htm

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

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

5. IAR在處理字符時(shí),要注意,是字符處理結尾標志,它和其他編輯軟件是不同的。比如我們常用字符處理會(huì )自動(dòng)在結尾處加,但IAR有些是不加的,這就要十分注意。

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

7. 在寫(xiě)FLASH時(shí)要注意其工作頻率在257K~476k之間,如果不是,則會(huì )出現錯誤。而且FLAGH只能寫(xiě)入0,這樣就出現了必須先擦除在寫(xiě)入的模式。

8. 當IO口作為輸入時(shí),要根據平時(shí)的狀態(tài)加電阻,平時(shí)為高時(shí),加個(gè)上拉電阻,平時(shí)為低時(shí)加個(gè)下拉電阻以增加穩定性。

9. 在FLASH寫(xiě)時(shí)一定要關(guān)外部中斷。

10. MSP430一般是不要RC復位的,一般只要接個(gè)100K左右電阻就可以了,如果要加電容,它的大小要根據以下兩個(gè)標準選擇:1. 下載程序不會(huì )出現下載不了;2. 程序上電會(huì )能穩定復位。

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

12. 不要使用中斷嵌套。

同時(shí),為了使用C語(yǔ)言來(lái)編寫(xiě)MSP430的高質(zhì)量代碼需要注意。

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

需要注意的事項如下:

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

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

2) 盡量不用過(guò)長(cháng)的數據類(lèi)型,如long、long long和double

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

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

5) 盡量將變量分配為無(wú)符號數據類(lèi)型。

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

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

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

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

10) 如果堆??臻g有限,盡量減少函數調用的層次和遞歸調用。

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

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

將變量聲明為volatile類(lèi)型,編譯器優(yōu)化時(shí)就不會(huì )移動(dòng)它,對它的訪(fǎng)問(wèn)不會(huì )被延遲。

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



關(guān)鍵詞: MSP430問(wè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>