亚洲美女爱爱-夜夜添夜夜添夜夜摸夜夜摸-97碰成人国产免费公开视频-国产午夜大片-www黄av-国产94在线 | 亚洲-亚洲午夜久久久精品一区二区三剧-精品视频亚洲-久久久久国色av∨免费看-黄色片一区二区-69福利视频-国产老头和老头xxxxx免费-99精品视频一区在线观看-日韩三级黄色毛片-亚洲激情图片区-黄色a一级-99re6在线-91九色视频-日本欧美久久久-成人国产精品免费观看

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

經驗分享:單片機程序開發中初級工程師常犯的錯誤

發布時間:2015-05-15 責任編輯:sherry

【導讀】這里利用一個實際發生的例子,針對初級工程師經常犯的一個小錯誤,或者經常要走的一個彎路,做了針對性的糾正。希望可以幫到大家,文筆不好文章中有敘述不清的地方大家多多指教。
 
這篇文章我不是想說編程的規范性的東西,如果你想讓自己的程序文件最起碼直觀的看起來美觀、可讀性強,推薦找華為的“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。
要采購繼電器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

主站蜘蛛池模板: 亚洲色爱图小说专区 | 无码国产玉足脚交极品播放 | 乱辈侵犯中文字幕 | 2021av在线无码最新 | 日本乳奶水流出来高清xxxx | 国产色秀| 高潮流白浆潮喷在线播放视频 | 看免费黄色毛片 | 国产又色又爽又黄刺激视频免费 | 亚洲www天堂com | 久久99国产乱子伦精品免费 | 欧美一区2区三区4区贰佰公司 | 欧美va在线观看 | 在线视频观看一区 | 四虎8848精品| 国内精品久久久久伊人aⅴ 在线成人欧美 | 日韩毛片网站 | 国产成人亚洲综合网色欲网久下载 | 香港经典a毛片免费观看播放 | 国产精品黄页免费高清在线观看 | 艳妇荡乳豪妇荡乳av精东 | 鲁丝一区二区三区 | 成年人黄视频 | 亚洲国产精品悠悠久久琪琪 | 亚洲国产精品无码专区 | 免费视频久久 | 精品久久蜜桃 | 97超碰中文字幕久久精品 | 无遮挡男女激烈动态图 | 狠狠色噜噜狠狠狠四色米奇 | 九一精品在线 | 亚洲品牌自拍一品区9 | 精品国产电影久久九九 | 隔壁放荡人妻bd高清 | 亚洲另类伦春色综合小说 | 日韩精品久久中文字幕 | 天堂a免费视频在线观看 | 国产日韩欧美自拍 | 国产又大又硬又粗无遮挡 | 日本乱人伦aⅴ精品潮喷 | 国产精品有码无码av在线播放 | 亚洲国产精品日本无码网站 | 午夜免费观看视频 | 日中文字幕| 香蕉蕉亚亚洲aav综合 | 国产少妇露脸精品自啪网站 | 亚洲午夜无码久久久久小说 | 日本在线一级片 | 91精品国产aⅴ一区 午夜视频在线看 | 精品免费一区二区在线 | 2023精品国色卡一卡二 | 亚洲成年人影院 | 亚洲伊人久久综合网站 | 扒开双腿猛进入喷水高潮视频 | 日韩人妻无码一区二区三区综合 | √天堂资源地址在线官网 | 亚洲熟妇av综合网五月 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 欧美精品成人影院 | 97久久超碰国产精品旧版 | 亚洲免费网站观看视频 | 久久夜色精品亚洲 | 国产亚洲精品第一综合另类 | 人妻熟女一二三区夜夜爱 | 日本50路肥熟bbw | 夜夜夜网 | 久久精品国产清自在天天线 | 国产精品国产三级国产aⅴ无密码 | 精品人妻少妇人成在线 | 九九视频在线观看视频6 | 久草在线播放视频 | 99精彩视频 | 2018年秋霞无码片 | 99国产精品国产精品九九 | 国产亚洲综合视频在线 | 国产又色又爽无遮挡免费动态图 | 久久久久国产精品麻豆ar影院 | 亚洲伦理在线播放 | 婷婷精品视频 | 97久章草在线视频播放 | 国内精品免费视频 | 啪一啪射一射插一插 | 国产欧美日韩专区发布 | 夜夜嗨网址 | 欧美亚洲免费 | 在线观看国精产品二区1819 | 色综合天天| 少妇高清一区二区免费看 | xxx久久| 久久精品3| 免费人成在线观看 | 四虎精品8848ys一区二区 | 国产精品卡一卡二卡三 | 18av在线播放 | h片在线 | 欧美mv日韩mv国产网站 | 欧美久久久久久久久久久 | 久久人人爽人人爽人人片av高清 | 欧美无马 |