直流電源設計中容易出現的程序設計錯誤及解決方法
開發(fā)單片機寫入代碼是我們做直流電源設計時候必不可少步驟,而且每家的代碼程序都是保密的,只有公司的核心人員才可以接觸得到,所以也就形成了相對應的技術保護,也是為了保護公司利潤的一個簡單有效的方式。但是在設計或寫入代碼時候,有時候直流電源的功能功能性操作要求較多,這樣就容易受到復雜環(huán)境的干擾。這里就談一下在直流電源設計中嵌入式程序設計容易出現的一些問題及解決方法。
直流電源程序設計易犯錯誤一:軟件接口
軟件接口調用一般會有數據的賦值,賦值變量的數據類型可能會存在強制的數據轉換;需加以檢查。如果為了防范出問題的話,可以添加對數據范圍和數據類型的檢查。賦值數據的數量不對路,多了少了的都不好,會出現意外的賦值結果。
軟件編程中,會有對某一功能操作代碼的復用,比如對某個端口的數據檢查和控制,在整個程序中只會發(fā)生兩次,為了圖省事,可能就直接把該段代碼直接插入實際程序模塊中去了。這樣在源程序代碼中,就出現了兩段完全相同,完成相同功能,只是服務于不同模塊的代碼,按道理來說,這樣設計其實也沒什么問題。但是,你的行為會使別人無意中犯錯。
那如何做呢?方法不難,把這段功能單獨做成一個模塊即可,對此端口的讀取和控制賦值均由此獨立模塊完成,如果數據的正確性影響大的話,還需要對端口數據的正確性進行檢查和判斷。嵌入式軟件可靠性編程方法的四個目的是防錯、判錯、糾錯、容錯。
直流電源程序設計易犯錯誤二:軟硬件接錯誤問題
對讀進來的硬件接口的數據要判斷其真?zhèn)?對輸出的數據的執(zhí)行效果要檢測;對輸出的數據的可能后果要進行預防性設計。
數據輸出的過程,我們從設計上要做一個分析,分析的思路是一般容易局限在穩(wěn)態(tài)過程,忽視了過渡過程。舉例說明,比如我們控制一個支路的供電,從軟件控制來說,直接給繼電器一個啟動信號,讓開狀態(tài)的觸點閉合就可以了,非“關”即“開”,是受控繼電器的兩個穩(wěn)態(tài)狀態(tài),但事實上,在從開到閉合的過程中,支路供電的電壓并不是一個簡單0V—24V(24V為示例而已)的跳變狀態(tài),而是一個抖動,有沖擊信號的過程,這種情況在硬件上的防護是必不可少的,但在軟件上也不是可以事不關己、高高掛起的。另外在邏輯上,宜將容易被干擾和容易產生的干擾控制動作從時序上控制好,予以分開隔離。
直流電源程序設計易犯錯誤三:軟件代碼
軟件的可靠性是隨著時間的推移,可靠性逐漸增加的,這一點區(qū)別于電子可靠性、機械可靠性。電子可靠性服從指數分布,在整個生命周期內,其失效率為一個常數;機械可靠性因為磨損、腐蝕、運動等因素的存在,隨時間推移可靠度會下降。因此也就有了軟件可靠性設計的一個特定規(guī)律和注意事項。
既然需要通過時間推移,通過不斷改進,軟件可靠性得到提升。那么軟件的可維護性就是一個大問題了。至于注釋如何去做、變量如何命名、軟件配置管理如何操作,這里面既有很常規(guī)的方法,也有一些我們司空見慣然而是錯誤的做法。信手舉上幾個值得注意的細節(jié)供參考:
變量定義時宜將變量類型的變量名程中體現于其中;如AD_result_int、Cal_result_float等;制賦值時出現數據類型的錯誤;注釋要充分;代碼的布局風格宜統(tǒng)一,便于閱讀查找等等
直流電源程序設計易犯錯誤四:數據、變量
變量的定義是為的避免各種混淆,同一程序內數據和數據的混淆、不同人讀程序時對變量理解上出現的二義性、視覺效果上容易出現的錯誤(字母的“o”和數字的“0”,字母的“l(fā)”和數字的“1”)。這里要遵循一個“要么相同,要么迥異”的基本規(guī)則,這條規(guī)則在很多的領域都有應用。用顯意的符號來命名變量和語句標號。標識符的命名有明確含義,且是完整單詞或易理解的縮寫。短單詞通過去掉“元音”形成縮寫;長單詞取頭幾個字母形成縮寫;一些單詞有公認的縮寫。如:Temp — tmp;Flag — flg;StaTIsTIc — stat;Increment — inc;Message — msg。
特殊約定或縮寫,要有注釋說明。在源文件開始處,對使用的縮寫或約定注釋說明。自己特有的命名風格,要自始至終保持一致。
- 上一篇:閥控式電池的均衡充電 2017/5/23
- 下一篇:從理想變?yōu)楝F實-準諧振式充電機 2017/5/23
