久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡

你的位置:首頁 > 測試測量 > 正文

經(jīng)驗(yàn)分享:單片機(jī)程序開發(fā)中初級工程師常犯的錯誤

發(fā)布時間:2015-05-15 責(zé)任編輯:sherry

【導(dǎo)讀】這里利用一個實(shí)際發(fā)生的例子,針對初級工程師經(jīng)常犯的一個小錯誤,或者經(jīng)常要走的一個彎路,做了針對性的糾正。希望可以幫到大家,文筆不好文章中有敘述不清的地方大家多多指教。
 
這篇文章我不是想說編程的規(guī)范性的東西,如果你想讓自己的程序文件最起碼直觀的看起來美觀、可讀性強(qiáng),推薦找華為的“C語言編程規(guī)范”。我只想說一說當(dāng)我們的單片機(jī)遇到多個模塊的數(shù)據(jù)需要處理,類似于“多任務(wù)”時我們應(yīng)該怎么辦?
 
背景是這樣的,去年9月份開始安排一個工程師開始做電動汽車交流充電樁,機(jī)械設(shè)計部分由公司機(jī)械結(jié)構(gòu)部門負(fù)責(zé)。充電樁的電子部分總體上分為X個部分(用到的資源),電阻觸摸屏(RS232),M1卡讀寫(RS232),電能計量表(RS485),語音提示(SPI),電力開關(guān)(繼電器IO),通訊接口(RS485、CAN)。
 
工程師做的過程非常勤奮,期間也是困難重重,改了很多個版本,總算今年6月把充電樁立起來了。
 
咱們來驗(yàn)收一下吧,結(jié)果發(fā)現(xiàn)讀卡的時候不能處理觸摸屏,播放語音的時候不能處理讀卡,語音播放不能打斷或者跳躍,反正就是所有事件必須一個一個按部就班的來,一旦操作錯誤就需要多次執(zhí)行、等待、甚至重新來過。
 
一個工作3年多的工程師怎么會把產(chǎn)品做成這樣呢?看看程序吧!
 
一看不要緊,嚇一跳!整個的程序是沒有邏輯的,一條線就往下寫……
 
While(1)
 
{
 
//上電進(jìn)入主程序 或 觸發(fā)觸摸屏
 
//播放提示語音
 
Delay();//等待播放完畢
 
//讀取M1卡信息
 
Delay();//等待讀卡數(shù)據(jù)返回
 
//播放提示語音
 
Delay();//等待播放完畢
 
//M1卡數(shù)據(jù)交互,判定下一步操作及提示
 
Delay();//等待數(shù)據(jù)處理完畢
 
……
 
……
 
}
 
這里說這個工程師基本上對于自己設(shè)計的產(chǎn)品沒有任何的整體概念,或者說對自己開發(fā)的程序用到設(shè)計上會有怎樣的實(shí)際效果根本就不清楚。
 
他犯了幾個我們在程序開發(fā)過程中最忌諱的幾個問題:
 
1、 delay(死等)這類函數(shù)只在應(yīng)該實(shí)驗(yàn)室驗(yàn)證某個功能過程中用到,在實(shí)際的產(chǎn)品開發(fā)時無論是主循環(huán)while中,還是其調(diào)用的函數(shù)中,亦或是中斷服務(wù)程序中絕對不可以用到。
 
2、 產(chǎn)品設(shè)計的各個子模塊之間的邏輯關(guān)系太強(qiáng),例如:必須等待播音完畢才能讀卡進(jìn)入下一步操作等。
 
我們講,產(chǎn)品設(shè)計中只有各個事件處理模塊間的邏輯關(guān)系弱化,才能更加靈活的進(jìn)行處理。例如:兩個事件A和B,如果程序開發(fā)時將A做成B事件的必要條件,B事件的觸發(fā)就必須等待A事件的發(fā)生。反之如果A事件作為B事件處理的一個特殊情況,那么程序開發(fā)起來就變得靈活很多。
 
3、 沒有考慮到單片機(jī)本身是一個單核單任務(wù)的架構(gòu),每一個事件都會獨(dú)占CPU內(nèi)核,當(dāng)多個任務(wù)模塊同時存在時我們應(yīng)該對各個事件進(jìn)行區(qū)分,我們應(yīng)當(dāng)分情況、分事件實(shí)時性要求等區(qū)分對待。
 
那么針對于這樣的問題,或者是遇到類似的項(xiàng)目我們應(yīng)該如何處理呢?
 
我提幾條建議:
 
1、將硬件系統(tǒng)區(qū)分為獨(dú)立單元單獨(dú)做成底層驅(qū)動函數(shù)和應(yīng)用函數(shù),并且函數(shù)正常應(yīng)該有參數(shù)和返回值,其中返回值是必要的。如何衡量這類函數(shù)呢?這類函數(shù)可移植性強(qiáng),只要一個.h文件和一個.c文件就可以隨意放到任何工程中。例如:語音播放、M1讀卡、485處理等等。
 
2、將1中的所有函數(shù)進(jìn)行時間評估,評估點(diǎn)有兩個。一個是函數(shù)的執(zhí)行時間t,第二個是函數(shù)的周期性發(fā)生的時間T,一個最基本的條件是t < T,理想情況應(yīng)該是t << T。
 
3、建立一個集中邏輯處理函數(shù),在這個函數(shù)中對1中的各個函數(shù)進(jìn)行調(diào)度。這個函數(shù)發(fā)揮的作用相當(dāng)于嵌入式系統(tǒng)中的系統(tǒng)調(diào)度。這種調(diào)度是整個硬件邏輯中所有事件處理的調(diào)度,它的目的是完成一個處理過程,但是絕不依賴于任意事件的必要處理過程。這樣就將問題2中提到的事件間的邏輯關(guān)系弱化了,處理起來變得十分靈活,使得各個關(guān)系不在相互必要。
 
4、為了保證前面內(nèi)容的正常實(shí)施還需要針對各類事件的周期,建立一個必要的時間管理函數(shù),時間函數(shù)的基礎(chǔ)一般情況下由一個內(nèi)部定時器的中斷來完成,中斷的周期一般我們考慮5-10ms。按照實(shí)際需求將N個定時器中斷定義為一個事件處理的周期TT,這個周期應(yīng)該保證處理完最惡劣情況可能發(fā)生的所有t,且保證TT < T。
 
5、 這其中也有例外,一些實(shí)時性要求高的事件應(yīng)當(dāng)用中斷完成。其中中斷處理函數(shù)的處理事件應(yīng)盡量短,時間要求參見2。
要采購繼電器么,點(diǎn)這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索

關(guān)閉

?

關(guān)閉

久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡
男女性色大片免费观看一区二区| 美女av一区| 欧美日韩视频免费观看| 福利片在线一区二区| 黑森林国产精品av| 色婷婷精品视频| 欧美肉体xxxx裸体137大胆| 国产自产自拍视频在线观看| 视频福利一区| 久久福利一区| 国产精品巨作av| 97se亚洲| 日韩精品第一区| 国产亚洲精品久久久久婷婷瑜伽| 99国产精品久久久久久久成人热 | 亚洲男女av一区二区| 久久中文字幕二区| 久久不射中文字幕| 国产调教一区二区三区| 精品美女在线视频| 久久久一二三| 亚洲精品在线二区| 久久久久九九精品影院| 国产精品字幕| 日韩综合一区二区| 国产一区二区三区四区五区| 黑丝一区二区三区| 国产一精品一av一免费爽爽| 日韩不卡免费高清视频| 亚洲影院天堂中文av色| 激情久久一区二区| 亚洲综合日韩| 国产v日韩v欧美v| 亚洲aa在线| 美腿丝袜亚洲一区| 亚洲精品电影| 久久精品人人| 视频在线观看一区| 国产一区二区三区四区| 亚洲一区二区成人| 国产精品国产三级国产在线观看| 宅男噜噜噜66国产日韩在线观看| 欧美精品成人| 亚洲精品乱码久久久久久蜜桃麻豆| а√天堂8资源在线| 日本成人在线网站| 五月天激情综合网| 久久三级毛片| 蜜臀91精品一区二区三区| 国产aⅴ精品一区二区四区| 国产精品视区| 欧洲精品一区二区三区| 国产亚洲精品美女久久| 91精品电影| 激情黄产视频在线免费观看| 欧美日韩1区2区3区| 欧美日韩一二三四| 精品午夜久久| 欧美一区二区三区久久精品| 亚洲欧美日韩精品一区二区| 欧美日韩国产v| 高清在线一区| 国产精品亚洲二区| 中文字幕成人| 在线观看免费一区二区| 精品久久电影| 国产欧美69| 日韩高清一区二区| 蜜桃视频免费观看一区| 日韩一区电影| 国内自拍视频一区二区三区| 欧美一级网址| 日韩三级一区| 视频一区二区不卡| 午夜精品影院| 在线一区电影| 91精品91| 国产国产精品| av亚洲在线观看| 亚洲精品1区2区| 99视频精品全部免费在线视频| 国产精品久久久久蜜臀| 欧美精品不卡| 久久精品色播| 日韩高清三区| 日韩精品免费观看视频| 蜜桃传媒麻豆第一区在线观看| 久久先锋影音| 中文字幕中文字幕精品| 在线看片日韩| 亚洲精选91| 日韩av电影一区| 欧美啪啪一区| 国产无遮挡裸体免费久久| 青青青国产精品| 国产乱码精品一区二区三区四区| 国产精品中文字幕亚洲欧美| 国产精品高潮呻吟久久久久| 久久99青青| 久久久久伊人| 色综合五月天| 久久精品动漫| 红桃视频国产精品| 丝袜亚洲精品中文字幕一区| 亚洲精品自拍| 国产精品一区二区三区美女| 你懂的亚洲视频| 国产在线看片免费视频在线观看| 中文在线а√天堂| 日韩欧美一区二区三区免费观看| 91精品国产成人观看| 一区免费在线| 日韩av网站免费在线| 欧美国产日韩电影| 欧美一级鲁丝片| 日韩天堂av| 日本视频在线一区| 欧美极品一区二区三区| 国产高潮在线| 亚洲在线电影| 国产精品手机在线播放| 国产成人久久| 日韩一级精品| 日韩1区2区日韩1区2区| 久久精品九色| 天堂资源在线亚洲| 五月国产精品| 日韩综合在线| 免费在线看一区| 久久精品网址| 在线视频精品| 国产精品亚洲产品| 99成人在线视频| 亚洲三级精品| 国产理论在线| 日韩1区2区3区| 韩国三级一区| 日韩av网站在线免费观看| 精品欠久久久中文字幕加勒比| 亚洲第一区色| 69堂精品视频在线播放| 日本韩国欧美超级黄在线观看| 视频在线观看一区二区三区| 久久精品国产亚洲aⅴ| 99视频一区| 日本特黄久久久高潮| 中文字幕系列一区| 日本成人在线网站| 久久久精品午夜少妇| 青青伊人久久| 91成人精品| 精品三级国产| 亚洲开心激情| 日韩毛片在线| 国产精品亚洲人成在99www| 91看片一区| 国产伦理久久久久久妇女| 91九色精品| 成人国产精品| 日韩和欧美一区二区| 99久久精品费精品国产| 首页国产欧美久久| 久久精品观看| 免费亚洲婷婷| 日韩免费精品| 久久成人国产| 久久婷婷一区| 福利一区视频| 久久国产视频网| 麻豆91精品| 欧美日韩免费看片| 精品一区二区三区视频在线播放| 日韩精品中文字幕吗一区二区| 午夜精品婷婷| 久久精品91| 伊人网在线播放| 久久字幕精品一区| 欧美亚洲一级| 综合激情视频| 美女久久一区| 亚洲午夜精品久久久久久app| 91日韩在线| 久久精品免视看国产成人| 欧美日韩午夜| 日韩av在线播放中文字幕| 国产精品美女久久久| 久久精品国产68国产精品亚洲| 精品国产精品国产偷麻豆| 国产欧美亚洲一区| 日韩av二区在线播放| 中文字幕av一区二区三区人| 欧美日韩国产亚洲一区| 欧美13videosex性极品| 日韩久久视频| 日本免费一区二区三区四区| 国产精品原创| 欧美不卡高清一区二区三区| 日韩精品1区| 婷婷激情一区| 99久久亚洲精品蜜臀|