微控制器開發中應掌握的幾個基本技巧

2021-06-15 22:13:01 字數 1575 閱讀 5735

一、 如何提高c語言程式設計**的效率

鄧巨集傑指出,用c語言進行微控制器程式設計是微控制器開發與應用的必然趨勢。他強調:「如果使用c程式設計時,要達到最高的效率,最好熟悉所使用的c編譯器。先試驗一下每條c語言編譯以後對應的組合語言的語句行數,這樣就可以很明確的知道效率。在今後程式設計的時候,使用編譯效率最高的語句。」

他指出,各家的c編譯器都會有一定的差異,故編譯效率也會有所不同,優秀的嵌入式系統c編譯器**長度和執行時間僅比以組合語言編寫的同樣功能程度長5-20%。他說:「對於複雜而開發時間緊的專案時,可以採用c語言,但前提是要求你對該mcu系統的c語言和c編譯器非常熟悉,特別要注意該c編譯系統所能支援的資料型別和演算法。雖然c語言是最普遍的一種高階語言,但由於不同的mcu廠家其c語言編譯系統是有所差別的,特別是在一些特殊功能模組的操作上。所以如果對這些特性不了解,那麼除錯起來問題就會很多,反而導致執行效率低於組合語言。」

二、 如何減少程式中的bug?

對於如何減少程式的bug,鄧巨集傑給出了一些建議,他指出系統執行中應考慮的超範圍管理引數有:

1.物理引數。這些引數主要是系統的輸入引數,它包括激勵引數、採集處理中的執行引數和處理結束的結果引數。合理設定這些邊界,將超出邊界的引數都視為非正常激勵或非正常回應進行出錯處理。

2.資源引數。這些引數主要是系統中的電路、器件、功能單元的資源,如記憶體容量、儲存單元長度、堆疊深度。在程式設計中,對資源引數不允許超範圍使用。

3.應用引數。這些應用引數常表現為一些微控制器、功能單元的應用條件。如e2prom的擦寫次數與資料儲存時間等應用引數界限。

4.過程引數。指系統執行中的有序變化的引數。

三、如何解決微控制器的抗干擾性問題

鄧巨集傑指出:防止干擾最有效的方法是去除干擾源、隔斷干擾路徑,但往往很難做到,所以只能看微控制器抗干擾能力夠不夠強了。微控制器干擾最常見的現象就是復位;至於程式跑飛,其實也可以用軟體陷阱和看門狗將程式拉回到復位狀態;所以微控制器軟體抗干擾最重要的是處理好復位狀態。

一般微控制器都會有一些標誌暫存器,可以用來判斷復位原因;另外你也可以自己在ram中埋一些標誌。在每次程式復位時,通過判斷這些標誌,可以判斷出不同的復位原因;還可以根據不同的標誌直接跳到相應的程式。這樣可以使程式執行有連續性,使用者在使用時也不會察覺到程式被重新復位過。

四、 如何測試微控制器系統的可*性

有讀者希望了解用用什麼方法來測試微控制器系統的可*性,鄧巨集傑指出:「當乙個微控制器系統設計完成,對於不同的微控制器系統產品會有不同的測試專案和方法,但是有一些是必須測試的:

1.測試微控制器軟體功能的完善性。這是針對所有微控制器系統功能的測試,測試軟體是否寫的正確完整。

2.上電、掉電測試。在使用中使用者必然會遇到上電和掉電的情況,可以進行多次開關電源,測試微控制器系統的可*性。

3.老化測試。測試長時間工作情況下,微控制器系統的可*性。必要的話可以放置在高溫,高壓以及強電磁干擾的環境下測試。

4、esd和eft等測試。可以使用各種干擾模擬器來測試微控制器系統的可*性。例如使用靜電模擬器測試微控制器系統的抗靜電esd能力;使用突波雜訊模擬器進行快速脈衝抗干擾eft測試等等。

鄧巨集傑強調:「還可以模擬人為使用中,可能發生的破壞情況。例如用人體或者衣服織物故意摩擦微控制器系統的接觸埠,由此測試抗靜電的能力。用大功率電鑽*近微控制器系統工作,由此測試抗電磁干擾能力等。」

MCU 微控制器開發幾個常用的IDE

gnu arm eclipse 免費開源的,各種微控制器,嵌入式的大合體開發環境,eclipse外掛程式嘛,就是配置麻煩了點。coide coocox的作品,本人表示沒用過 embitz 本人常用,目前1.1版本,2.0版叫喚了好久,還沒出來 keil mdk 這個不解釋了吧,基本上是入門從這開始的...

微控制器開發涉及到的幾個概念

1.什麼是 dsp中的 內部上拉 和 內部下拉 dsp中介紹引腳時,註明pu,pd說是 內部上拉 和 內部下拉 就是說內部已經配置了接電源的 上拉電阻或是接地的下拉電阻。這樣,當作 為輸入埠連線oc或 coms 晶元或浮空時。訊號線平 是確定的高 低電 平。而不是不確定的浮地電平。內部上拉,相當於輸...

51微控制器 51系列微控制器的開發模板

這個是微控制器開發的模板,下面給些注釋和思路,開發的時候其實是經常使用的,之前也不懂,參加藍橋杯之後學習到的,如果有時間和機會,會結合前輩的這些思路,再寫個stm32和嵌入式下的開發模板,這個很有利於專案的設計開發。說明 適用於stc15f2k60s2微控制器,其他的類似,只需要改動相關的定時器設定...