.#i nclude<>指要在編輯器設定目錄下,#i nclude""指的是在當前工程目錄下。
2.要呼叫另乙個檔案中的函式,要把這個函式檔案放到當前工程目錄下,並且在工程中新增此檔案。
3.命名中不能有-,比如:byq-ee會認為是錯誤的,要用下劃線。
4.用iar軟體**時,可以加入變數,如果是檢視i/o資訊只需加入pxin,pxout即可。
5.iar在處理字元時,要注意,是字元處理結尾標誌,他和其他編輯軟體是不同的。比如我們長用字元處理回
自動在結尾處加,但iar有些是不加的,這就要十分注意。
6.如果只用到lfx1的低速時鐘,9600bit/s傳輸的話,接收會出現問題,原因是誤差太大,可以設定到4800以下。
7.在寫flash時要注意其工作頻率在257k~476k之間,如果不是,則會出現錯誤。而且flagh只能寫入0,這樣就出現了
必須先擦除在寫入的模式。
8.當io口作為輸入時,要根據平時的狀態加電阻,平時為高時,加個上拉電阻,平時為低時加個下拉電阻以增加穩定性。
9.在flash寫時一定要關外部中斷。
;2.程式上電會能穩定復位
11.用&表示式作為判斷時,不要忘記加括號。
12.不要使用中斷巢狀。
同時,為了使用c語言來編寫msp430的高質量**需要注意。
微處理器一般用於特定環境和特定用途,出於成本、功耗和體積的考慮,一般都要求盡量節省使用資源,並且,由於微處理器硬體一般都不支援有符號數、浮點數的運算,且運算位有限,因此,分配變數時必須仔細。另外要說明的是,速度和儲存器的消耗經常是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) msp430的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 開發注意事項要求
以下是在使用msp430中的一些總結 1.系統時鐘問題 系統預設使用dco,使用外部高速晶振xt2時必須自己開啟xt2,並延時50us等待xt2起振,然後手工清除ifg1中的ofifg位 一定要注意操作順序 開啟xt2 等待xt2穩定 切換系統時鐘為xt2 若後面兩步操作反了,在通常情況下不會出現問...
msp430鍵盤程式
msp430 按鍵程式 含電路圖及源 include void init port void void delay void int keyprocess void return nres 處理來自埠 1 的中斷 interrupt port1 vector void port isr void i...
MSP430電平轉換
說道到這個電平轉換,寫程式的時候居然還要示波器來觀察現象,表示我們交的是211的學費,上的卻不是211大學,創新實驗室的儀器裝置真的是少的可憐啊,我級不吐槽了說說這個電平轉換的一些知識還有看法吧。看到原理圖首先得說說接線帽的問題,這個很重要,接線帽 的使用會連線到不同的引腳上,大家看原理圖的時候就會...