1.#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寫時一定要關外部中斷。
10.MSP430一般是不要RC復位的,一般只要接個100K左右電阻就可以了,如果要加電容,它的大小要根據以下兩個標準選擇:
下載程序不會出現下載不了
程序上電會能穩定復位
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教程16:MSP430單片機的框架程序
下一篇:MSP430教程13:MSP430單片機比較器A模塊
推薦閱讀
史海拾趣
背景:2003年,福斯特的創始人林建華,一位在紡織業和化工領域有著豐富經驗的工程師,決定跨界進入光伏材料行業。當時,國內光伏組件封裝所需的光伏膠膜幾乎全部依賴進口,被國外幾家大公司壟斷。
發展:林建華憑借在熱熔網膜領域的技術積累,帶領團隊成功研發出EVA膠膜,打破了國外技術壟斷。這一技術突破不僅降低了國內光伏組件的生產成本,也為福斯特在光伏材料領域的崛起奠定了堅實基礎。
成果:2008年,福斯特的EVA膠膜產品憑借優異的性能和價格優勢,成功打入國內光伏組件企業的供應名錄,并躋身全球EVA膠膜供應商前三強。
背景:光伏行業技術迭代迅速,對封裝材料的要求也越來越高。
發展:福斯特始終將技術創新作為企業發展的核心驅動力,不斷加大研發投入,推出了一系列具有自主知識產權的新產品。例如,公司成功研發出多層共擠型POE膠膜,有效提高了光伏組件的抗PID性能和發電效率。
成果:福斯特的技術創新不僅提升了自身產品的競爭力,也推動了整個光伏行業的技術進步和產業升級。
隨著全球對環保意識的不斷提高,Delphi Connection Systems公司也積極響應環保號召,致力于研發和生產環保型連接器產品。公司采用環保材料和工藝,減少生產過程中的污染排放,同時推出可回收、可再利用的連接器產品。這一舉措不僅符合了環保要求,也為客戶提供了更加環保的解決方案。
韓國三星電子(Samsung Electronics)在CMOS技術方面也取得了顯著成就。作為一家綜合性電子企業,三星電子在CMOS技術研發方面投入了大量資金和人力資源。通過不斷的技術創新和生產優化,三星電子成功推出了多款高性能、低功耗的CMOS芯片產品,廣泛應用于智能手機、平板電腦等電子產品中。這些產品以其卓越的性能和出色的品質贏得了市場的廣泛認可,使三星電子在全球半導體市場上占據了一席之地。
安碁科技在發展過程中,積極尋求與高校、研究機構的合作,以推動技術創新和人才培養。例如,2009年,公司與逢甲大學進行產學合作,共同研發超小型石英振動子。這種合作模式不僅為公司帶來了先進的技術和研發資源,也促進了產學研之間的緊密合作和共同發展。此外,安碁科技還不斷拓展業務領域,從石英振蕩器逐步擴展到汽車電子、工業控制、消費電子等多個領域,實現了業務的多元化發展。
隨著業務的不斷發展,Elpac公司開始將目光投向國際市場。公司制定了全球化戰略,積極開拓海外市場。為了更好地適應不同國家和地區的市場需求,Elpac公司針對不同地區推出了定制化的產品和服務。同時,公司還加強了與國際知名企業的合作,共同研發新技術、新產品。這些舉措不僅讓Elpac公司的產品在全球市場上得到了廣泛認可,也為公司的長遠發展奠定了堅實基礎。
29. What is the requirement for phase noise at 1k offset, 10kHz offset, and 100kHz offset for GSM handset? GSM手機的相位噪聲為1k、10kHz和100kHz的情況下,需要滿足什么條件?答:For GSM handset RX it has several architectures to impl ...… 查看全部問答∨ |
呵呵,要在這里和大家探討一個問題,就是做電子工程師前途如何? 現在,這個社會太物質了,像我們這樣能靜下心來做點事情并且沉醉于其中的人越來越少了。還有錢,這個生活必需品的問題。歡迎大家談談自己的想法!!!… 查看全部問答∨ |
“簡簡單單DSP”系列學習活動—第七期事件管理器——PWM 四、 PWM電路 每一個事件管理器有三個比較單元,每一個比較單元有兩個互補的PWM輸出,這樣三個比較單元就可以產生6路PWM,并且死區時間和輸出極性可編程,能夠 ...… 查看全部問答∨ |
|
我只想把arm當成一個超級mcu用,因為arm可訪問的板上sdram比較大,不想用到嵌入式linux. 這樣的話應該是怎樣個開發流程? 用什么ide比較好,是keil還是ads 那些flash和sdram程序這樣才能訪問,要如何配置。 程序是怎么下載到硬件上去的。 望前 ...… 查看全部問答∨ |
|
詢問的MPU型號: STM32F103ZET6 參考的手冊:14611.pdf 問題: MPU在運行在72MHZ的時候,如果程序在FLASH中運行, 執行速率有多少? 因為:手冊第一頁: 特性:72 MHz maximum frequency, 1.25 DMI ...… 查看全部問答∨ |
【MSP430共享】用MSP430F4270實現數字溫度測試儀 摘 要:溫度是 工業生產中的一種常見的被控參數。如何有效的控制溫度是現代工業生產中 的一個重要問題。為此,文中給出了用MS P 4 3 0 F 4 2 7 O 做控制器來實現數字溫度測試的設計方 案 ,同時給出了系統的硬件結構和功能設計方法。 [ ...… 查看全部問答∨ |