在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

針對初級工程師經常犯的一個小錯誤,做了針對性的糾正

5RJg_mcuworld ? 2018-01-30 17:53 ? 次閱讀

這里利用一個實際發生的例子,針對初級工程師經常犯的一個小錯誤,或者經常要走的一個彎路,做了針對性的糾正。希望可以幫到大家,文筆不好,文章中有敘述不清的地方大家多多指教。
這篇文章我不是想說編程的規范性的東西,如果你想讓自己的程序文件最起碼直觀的看起來美觀、可讀性強,推薦找華為的“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。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6042

    文章

    44617

    瀏覽量

    637555
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41649
  • 函數
    +關注

    關注

    3

    文章

    4345

    瀏覽量

    62871

原文標題:當單片機遇到多個模塊的數據需要處理,應該怎么辦?

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    這些問題電子工程師經常容易犯糊涂

    是人就會犯錯,何況是工程師呢?雖然斗轉星移,工程師們卻經常犯同樣的錯誤!下面,就請各位對號入座,看看自己有沒有中招。
    發表于 09-01 09:48 ?1041次閱讀

    wiki上的小錯誤

    地址:http://wiki.friendlyarm.com/wiki/index.php/How_to_build_the_Compiling_Environment/zh小錯誤,大小寫
    發表于 12-18 21:39

    單片機程序開發時,常犯錯誤

    `這里利用實際發生的例子,針對初級工程師經常犯
    發表于 05-05 11:53

    電子工程師常見的錯誤

    和復雜的電路圖,工程師們不時出現的小錯誤是難免的,而且說不定就從哪次錯誤中發現了“新大陸”,那你就成為科技革命的先驅了! 但是對于資歷尚淺的新手工程師來說,這些過來人的經驗可能會對你大
    發表于 01-22 07:16

    電子工程師踩過的這些坑簡析

    有很多時候,工程師們并不覺得自己在犯錯誤,反而以為自己找到了更好的解決方式而竊喜呢!其實,面對林林總總的元器件和復雜的電路圖,工程師們不時出現的小錯誤是難免的,而且說不定就從哪次
    發表于 01-10 07:22

    分壓電路容易忽略的小錯誤

    分壓電路容易忽略的小錯誤,感興趣的小伙伴們可以瞧瞧。
    發表于 09-18 17:15 ?0次下載

    電子工程師常犯錯誤TOP20點評

    中國電子工程師硬工常犯錯誤TOP20,快來看看你有沒有,比如在硬件上很多電氣特性直接受軟件控制,但軟件是經常發生意外的,程序跑飛了之后無法預料會有什么操作。設計者應確保不論軟件做什么
    的頭像 發表于 02-26 11:21 ?5340次閱讀

    電子工程師快來看看這29錯誤你有沒有犯過?

    面對林林總總的元器件和復雜的電路圖,工程師們不時出現的小錯誤是難免的,而且說不定就從哪次錯誤中發現了“新大陸”,那你就成為科技革命的先驅了!
    的頭像 發表于 03-18 09:47 ?7455次閱讀

    開發單片機程序時常犯錯誤

    這里利用實際發生的例子,針對初級工程師經常犯
    的頭像 發表于 12-23 14:11 ?4173次閱讀

    電子工程師常犯的21點錯誤總結

    是人就會犯錯,何況是工程師呢?雖然斗轉星移,工程師們卻經常犯同樣的錯誤!下面,就請各位對號入座,看看自己有沒有中招。
    的頭像 發表于 02-03 12:48 ?3242次閱讀
    電子<b class='flag-5'>工程師</b>會<b class='flag-5'>常犯</b>的21點<b class='flag-5'>錯誤</b>總結

    工程師經常犯錯誤有哪些

    電子工程師指從事各類電子設備和信息系統研究、教學、產品設計、科技開發、生產和管理等工作的高級工程技術人才。般分為硬件工程師和軟件工程師。
    的頭像 發表于 08-05 16:03 ?2392次閱讀

    單片機的程序開發經常會出現那些錯誤

    這里利用實際發生的例子,針對初級工程師經常犯
    的頭像 發表于 01-09 10:41 ?4971次閱讀

    電子工程師的這29錯誤你有沒有犯過

    和復雜的電路圖,工程師們不時出現的小錯誤是難免的,而且說不定就從哪次錯誤中發現了“新大陸”,那你就成為科技革命的先驅了! 但是對于資歷尚淺的新手工程師來說,這些過來人的經驗可能會對你
    的頭像 發表于 02-11 11:19 ?771次閱讀

    99%的電子工程師掉進過這29

    面對林林總總的元器件和復雜的電路圖,工程師們不時出現的小錯誤是難免的,對于資歷尚淺的新手工程師來說,過來人的經驗可能會對你大有裨益,這些前人趟過的雷你就不要再去踩了,快來看看這29
    發表于 02-10 10:44 ?1次下載
    99%的電子<b class='flag-5'>工程師</b>掉進過這29<b class='flag-5'>個</b>坑

    在元器件和復雜電路中工程師常犯的10錯誤

    面對林林總總的元器件和復雜的電路圖,工程師們不時出現小錯誤是難免的,小編整理了10,看看你是否曾踩過坑?
    的頭像 發表于 11-28 15:53 ?779次閱讀
    主站蜘蛛池模板: 熊出没之环球大冒险旧版免费观看 | 成人免费国产gav视频在线 | 欧美一级特黄aa大片视频 | 午夜高清视频在线观看 | 欧美三级网站 | 国模在线视频 | 欧美亚洲综合图区在线 | 亚洲精品系列 | 清朝荒淫牲艳史在线播放 | 五月综合激情久久婷婷 | 激情综合五月 | 青青热久免费精品视频在线观看 | 亚洲综合精品一区二区三区中文 | 主人扒开腿揉捏花蒂调教cfh | 久久国产乱子伦精品免费一 | 永久在线| 免看一级a毛片一片成人不卡 | 成人在线网 | 天天干天天干天天干天天 | 来啊mm影院亚洲mm影院 | 九色国产在视频线精品视频 | 美女拍拍拍爽爽爽爽爽爽 | 性videofree极品另类 | 小泽玛利亚厕所大喷水 | 高清成人 | 亚洲天堂三级 | 日本人xxxxxxxx6969 | 欧美一区二区三区男人的天堂 | 成人黄色三级 | 成人免费aaaaa毛片 | 国产香蕉在线精彩视频 | se94se最新网站 | 欧美精品一区视频 | 色噜噜狠狠成人网 | 男人不识本网站上遍色站也枉然 | 精品卡一卡二 卡四卡视频 精品噜噜噜噜久久久久久久久 | 亚洲成综合人影院在院播放 | 欧美黄色免费看 | 中文字幕在线观看日剧网 | 五月婷婷 六月丁香 | 日本乱理论片免费看 |