欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡

你的位置:首頁 > 測(cè)試測(cè)量 > 正文

經(jīng)驗(yàn)分享:?jiǎn)纹瑱C(jī)程序開發(fā)中初級(jí)工程師常犯的錯(cuò)誤

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

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

關(guān)閉

?

關(guān)閉

欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡
99在线精品一区二区三区| av动漫一区二区| 成av人片一区二区| 日韩视频在线观看一区二区| 一区二区久久久久| 久久精品国产99久久6| 久久先锋资源网| 国产精品自在欧美一区| 91精品在线麻豆| eeuss国产一区二区三区| 亚洲成人激情av| 欧美极品xxx| 日韩一级免费观看| 免费观看在线色综合| 国产精品护士白丝一区av| 欧美久久久久免费| 国产精品一区二区免费不卡| 国产精品美女久久久久久久网站| 欧美性色黄大片| 国产成人在线免费| 国产视频视频一区| 欧美变态tickle挠乳网站| 久久精品72免费观看| 国产精品久久久久久久久晋中 | 欧美成人猛片aaaaaaa| 色婷婷一区二区| 老鸭窝一区二区久久精品| 午夜欧美一区二区三区在线播放| 欧美激情在线免费观看| 91成人在线免费观看| 成人一区二区三区视频在线观看 | 最新国产精品久久精品| 国产欧美一区二区三区网站| 91精品国产91久久久久久最新毛片| 色吊一区二区三区| 日本欧美加勒比视频| 午夜精品福利在线| 欧美96一区二区免费视频| 精品乱人伦小说| 制服丝袜亚洲网站| 日韩欧美一级二级| 日韩欧美国产一区二区在线播放| 欧美tickling网站挠脚心| 欧美日本视频在线| 欧美成人乱码一区二区三区| 久久一区二区三区四区| 久久久久久亚洲综合影院红桃| 精品欧美一区二区久久| 国产精品久久久久久久久免费桃花 | www国产成人| 亚洲综合在线免费观看| 美腿丝袜亚洲色图| 91久久线看在观草草青青| 99精品久久免费看蜜臀剧情介绍| 欧美在线视频你懂得| 久久久亚洲高清| 日韩高清在线不卡| 94色蜜桃网一区二区三区| 日韩精品一区二区三区视频在线观看| 国产日本亚洲高清| 极品瑜伽女神91| 欧美日韩一区二区三区不卡| 欧美大肚乱孕交hd孕妇| 国产精品高潮久久久久无| 激情文学综合网| 在线观看免费亚洲| 国产精品久久久久永久免费观看 | 国产丝袜欧美中文另类| 久久精品理论片| 日韩一区二区三区免费看| 亚洲精品中文在线观看| 成人性视频免费网站| 欧美日韩一区精品| 亚洲影院在线观看| 成人av资源站| 国产精品美女久久久久久久久 | 丰满少妇在线播放bd日韩电影| 日韩三级av在线播放| 免费日本视频一区| 91麻豆精品久久久久蜜臀| 美洲天堂一区二卡三卡四卡视频| 色婷婷久久久综合中文字幕| 亚洲一区二区三区四区五区中文| 欧洲人成人精品| 久久99国产精品久久99| 国产亚洲欧洲997久久综合| 不卡的av在线播放| 亚洲精品国产精华液| 日韩一区二区三区观看| 日韩综合小视频| 精品美女在线播放| 色综合天天综合色综合av | 丁香天五香天堂综合| 亚洲女同一区二区| 欧美一区二区三级| 国产露脸91国语对白| 国产精品久久久久久久久果冻传媒 | 欧美亚洲国产一区二区三区va | 7777精品伊人久久久大香线蕉| 韩日欧美一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美日韩精品久久久| 国产精品白丝av| 亚洲激情男女视频| 国产精品久久久久久久浪潮网站| 欧美主播一区二区三区| 99re热视频精品| 91麻豆精品一区二区三区| 激情六月婷婷久久| 日韩影院免费视频| 香蕉久久夜色精品国产使用方法| 国产精品国产三级国产aⅴ中文 | 国产精品国产三级国产aⅴ原创| 日韩丝袜情趣美女图片| 97精品视频在线观看自产线路二| 91亚洲国产成人精品一区二三 | 国产精品国产三级国产普通话蜜臀| 欧美一级免费大片| 在线观看一区不卡| 成人福利视频网站| 久久99国产精品尤物| 午夜久久福利影院| 亚洲成a天堂v人片| 亚洲视频每日更新| 国产精品三级久久久久三级| 久久久久久久久久久久久夜| 欧美日韩第一区日日骚| 99re热这里只有精品免费视频| 成人久久久精品乱码一区二区三区| 久久99精品国产91久久来源| 精品一区二区三区在线播放视频| 日本aⅴ亚洲精品中文乱码| 尤物av一区二区| 免费成人性网站| 国产精品一卡二| 国产a精品视频| 色呦呦国产精品| 欧美日韩一区三区四区| 蜜臀精品一区二区三区在线观看 | 综合久久久久综合| 亚洲精品午夜久久久| 亚洲3atv精品一区二区三区| 亚洲女同一区二区| 国产一区二区三区在线观看免费 | 亚洲欧美激情在线| 亚洲综合网站在线观看| 奇米一区二区三区| 97成人超碰视| 欧美视频在线不卡| 日韩女优毛片在线| 国产精品久久久久久户外露出| 午夜精品福利一区二区蜜股av | 亚洲人成7777| 在线视频亚洲一区| 亚洲影院理伦片| 激情欧美一区二区三区在线观看| 欧美私人免费视频| 亚洲一区二区成人在线观看| 国产精品影音先锋| 久久久91精品国产一区二区精品| 亚洲婷婷综合色高清在线| 蜜臀av在线播放一区二区三区| 成人在线视频首页| 久久久精品免费观看| 国内精品在线播放| 久久久亚洲精品石原莉奈| 国产一区二区三区最好精华液| 精品国产区一区| 日本人妖一区二区| 欧美亚洲一区三区| 男女男精品网站| 国产日本欧美一区二区| 一本到不卡免费一区二区| 日日噜噜夜夜狠狠视频欧美人| 久久综合色之久久综合| 精一区二区三区| 久久综合九色综合97婷婷女人| 午夜精品久久久久影视| 欧美日韩视频一区二区| 久久99蜜桃精品| 欧美一区二区免费视频| 福利一区福利二区| 另类人妖一区二区av| 国产精品久久久久影视| 欧美日韩亚洲综合在线| 成人午夜免费电影| 国产麻豆91精品| 国内精品久久久久影院薰衣草| 久久久一区二区| 色婷婷久久久久swag精品| 成人性色生活片免费看爆迷你毛片| 午夜成人免费视频| 国产欧美日韩在线| 精品1区2区在线观看| 欧美日韩情趣电影| 色综合天天做天天爱| 97se狠狠狠综合亚洲狠狠| 极品美女销魂一区二区三区| 国产色爱av资源综合区| 成人激情黄色小说|