?? 單片機開發流程常犯的錯誤_深圳市鴻普達科技有限公司
电影蜜桃熟了,日日躁夜夜躁狠狠躁,亚洲国产另类久久久精品,精品一区二区三区免费播放,少妇人妻邻居,日韩精品一区二区亚洲av观看,色伊人亚洲综合网站,国产精品va尤物在线观看

電子產品開發

深圳電子產品研發開發設計公司

電子產品開發,電子產品開發公司,深圳電子產品開發,電子產品開發流程,電子單片機開發,電子產品開發設計電子產品開發方案,電子產品研發廠家,電子產品研發公司,電子產品研發外包

電子產品開發 電子產品開發公司 深圳電子產品開發 電子產品開發設計 電子產品研發公司 電子產品研發廠家 深圳電子產品研發

深圳鴻普達科技有限公司是深圳一家電子產品開發公司,承接電子產品開發設計,電子產品研發外包,電子產品研發方案等業務。歡迎來電咨詢洽談。

當前位置:首頁 > 新聞資訊
新聞資訊
單片機開發流程常犯的錯誤
時間:2016-05-27 14:39:28
 這里利用一個實際發生的例子,針對初級工程師經常犯的一個小錯誤,或者經常要走的一個彎路,做了針對性的糾正。希望可以幫到大家,文筆不好文章中有敘述不清的地方大家多多指教。

 

這篇文章我不是想說編程的規范性的東西,如果你想讓自己的程序文件最起碼直觀的看起來美觀、可讀性強,推薦找華為的“C語言編程規范”。我只想說一說當我們的單片機遇到多個模塊的數據需要處理,類似于“多任務”時我們應該怎么辦?

 

背景是這樣的,去年9月份開始安排一個工程師開始做電動汽車交流充電樁,機械設計部分由公司機械結構部門負責。充電樁的電子部分總體上分為X個部分(用到的資源),電阻觸摸屏(RS232),M1卡讀寫(RS232),電能計量表(RS485),語音提示(SPI),電力開關(繼電器IO),通訊接口(RS485、CAN)。

 

工程師做的過程非常勤奮,期間也是困難重重,改了很多個版本,總算今年6月把充電樁立起來了。

 

咱們來驗收一下吧,結果發現讀卡的時候不能處理觸摸屏,播放語音的時候不能處理讀卡,語音播放不能打斷或者跳躍,反正就是所有事件必須一個一個按部就班的來,一旦操作錯誤就需要多次執行、等待、甚至重新來過。

 

一個工作3年多的工程師怎么會把產品做成這樣呢?看看程序吧!

 

一看不要緊,嚇一跳!整個的程序是沒有邏輯的,一條線就往下寫……

 

While(1)

 

{

 

//上電進入主程序 或 觸發觸摸屏

 

//播放提示語音

 

Delay();//等待播放完畢

 

//讀取M1卡信息

 

Delay();//等待讀卡數據返回

 

//播放提示語音

 

Delay();//等待播放完畢

 

//M1卡數據交互,判定下一步操作及提示

 

Delay();//等待數據處理完畢

 

……

 

……

 

}

 

這里說這個工程師基本上對于自己設計的產品沒有任何的整體概念,或者說對自己開發的程序用到設計上會有怎樣的實際效果根本就不清楚。

 

他犯了幾個我們在程序開發過程中最忌諱的幾個問題:

 

1、 delay(死等)這類函數只在應該實驗室驗證某個功能過程中用到,在實際的產品開發時無論是主循環while中,還是其調用的函數中,亦或是中斷服務程序中絕對不可以用到。

 

2、 產品設計的各個子模塊之間的邏輯關系太強,例如:必須等待播音完畢才能讀卡進入下一步操作等。

 

我們講,產品設計中只有各個事件處理模塊間的邏輯關系弱化,才能更加靈活的進行處理。例如:兩個事件A和B,如果程序開發時將A做成B事件的必要條件,B事件的觸發就必須等待A事件的發生。反之如果A事件作為B事件處理的一個特殊情況,那么程序開發起來就變得靈活很多。

 

3、 沒有考慮到單片機本身是一個單核單任務的架構,每一個事件都會獨占CPU內核,當多個任務模塊同時存在時我們應該對各個事件進行區分,我們應當分情況、分事件實時性要求等區分對待。

 

那么針對于這樣的問題,或者是遇到類似的項目我們應該如何處理呢?

 

我提幾條建議:

 

1、將硬件系統區分為獨立單元單獨做成底層驅動函數和應用函數,并且函數正常應該有參數和返回值,其中返回值是必要的。如何衡量這類函數呢?這類函數可移植性強,只要一個.h文件和一個.c文件就可以隨意放到任何工程中。例如:語音播放、M1讀卡、485處理等等。

 

2、將1中的所有函數進行時間評估,評估點有兩個。一個是函數的執行時間t,第二個是函數的周期性發生的時間T,一個最基本的條件是t < T,理想情況應該是t << T。

 

3、建立一個集中邏輯處理函數,在這個函數中對1中的各個函數進行調度。這個函數發揮的作用相當于嵌入式系統中的系統調度。這種調度是整個硬件邏輯中所有事件處理的調度,它的目的是完成一個處理過程,但是絕不依賴于任意事件的必要處理過程。這樣就將問題2中提到的事件間的邏輯關系弱化了,處理起來變得十分靈活,使得各個關系不在相互必要。

 

4、為了保證前面內容的正常實施還需要針對各類事件的周期,建立一個必要的時間管理函數,時間函數的基礎一般情況下由一個內部定時器的中斷來完成,中斷的周期一般我們考慮5-10ms。按照實際需求將N個定時器中斷定義為一個事件處理的周期TT,這個周期應該保證處理完最惡劣情況可能發生的所有t,且保證TT < T。

 

5、 這其中也有例外,一些實時性要求高的事件應當用中斷完成。其中中斷處理函數的處理事件應盡量短,時間要求參見2。

[返回]
Copyright ? 2015深圳市鴻普達科技有限公司 版權所有
郵政電子開發平臺
揭開電子產品開發面紗
提高電子產品開發質量
智能藍牙音箱開發未來替代家具音箱
藍智能牙音箱居然能看病
控制器研發方案
無線溫濕度研發設計方案
溫濕度報警系統研發方案
溫濕度德國研究院研發方案
單片機產品制造商研發外包
主站蜘蛛池模板: 欧美激情 亚洲 在线| 国产美女牲交视频| 天堂а√在线中文在线最新版| 日本妇人成熟免费中文字幕| 中文字幕mv在线观看| 久久99九九精品久久久久蜜桃| 久久午夜电影网| 公与淑婷厨房猛烈进出视频| 欧美人妻体内射射| 无码人妻aⅴ一区二区三区有奶水 久久无码人妻一区二区三区午夜 日本欧美一区二区三区乱码 | 色综合久久久久无码专区| 浮力影院50826| 久久久国产精品午夜一区| 我把寡妇日出水了| 人妻2| 少妇自慰流白口浆21p| 大香伊蕉在人线国产免费| 跪趴式啪啪gif动态图27报| 精品日韩卡1二2卡3卡4卡乱码| 精品伊人久久大线蕉色首页| 秋霞a级毛片在线看| 久久午夜夜伦鲁鲁片免费无码| 最近最新中文字幕视频| 久久久久无码国产精品不卡| 两公的浮之手中字| 亚洲小说图区综合在线| 无码囯产精品一区二区免费| 丰满大爆乳波霸奶| 色综合天天综合网国产成人网| 人人妻人人狠人人爽| 亚洲av成人无码网站| 肉多荤文高h羞耻玩弄校园| 暗交小拗女一区二区三区| 99精品国产一区二区三区| а√天堂中文官网在线8| 先锋影音av成人资源| 精品国产乱码久久久人妻| 国产精品久久久久久影视不卡| 爱如潮水在线观看视频| 17岁日本免费bd完整版观看| 性高朝久久久久久久久久|