【作者簡介】3htech
姓名:朱海生,生于山東德州。
2010年6月畢業(yè)于山東師范大學電子信息科學與技術專業(yè)
2010年1月至2012年3月,在濟南某公司設計開發(fā)稱重產(chǎn)品(模塊,配料表,稱重控制儀表等)
2012年5月至現(xiàn)在,在山東淄博某公司設計開發(fā)電力儀表。
下面是小白菜分享給各位網(wǎng)友的個人學習經(jīng)歷,以及一些個人心得:
話說大二開設的C語言,本人一不小心就掛了。現(xiàn)在回想起來,還要感謝這次掛科。
我好像是大二上學期開設的C語言,那個時候天氣有點熱,又是下午第一大節(jié)上課,我和我舍友經(jīng)常性的不想去。躲在宿舍里睡個午覺,上個網(wǎng),打個游戲,感覺不錯;但是課程也落下了。最后期末考試了,發(fā)現(xiàn)自己什么都不會,考試時正執(zhí)大熱天,考完一場一身汗,但也沒感覺自己能掛,等上網(wǎng)查成績之后發(fā)現(xiàn)真的掛了。
怎么辦?怎么辦?聽說C語言掛了之后一般補考也會掛,大部分都要重修。我的個神來……我不能重修,要不然太丟人了。于是自己在漫長的暑假里開始看《C語言程序設計》(譚老師編的)。一個字一個字的慢慢看,課后題一個不落的全做了,流程圖,寫代碼,調(diào)試忙了整整一個暑假。等開學后補考,結(jié)果通過了。懸著的心放下了。在暑假里,我還發(fā)現(xiàn)了書上的幾處錯誤之處,本想著開學后給寄出去,結(jié)果也經(jīng)忘記了。
正是因為這一個月的突擊,讓我對C(尤其是指針)有了一個較為深刻的認識。在后來的《數(shù)據(jù)結(jié)構(gòu)》學習中,我能很容易理解課本上所說的內(nèi)容,并且可以把課后習題編寫出來。
學習數(shù)據(jù)結(jié)構(gòu)的時候,我不知怎么的寫了一個大數(shù)階乘的程序。已經(jīng)記不得為什么要寫這個了。后來我把自己寫的這個大數(shù)階乘給放到自己的求職簡歷里去了,結(jié)果很管事,只發(fā)了3份簡歷,便找到了我的第一份工作。
第一次調(diào)試單片機程序是在偉福實驗箱,話說當時什么不都不知道,箱子據(jù)說也是壞的,上課就是為了去玩。后來自己買了一塊開發(fā)板,開始用匯編編51上的程序(一開始我不會用51C,只會用匯編)。
第一個自己編寫的程序是流水燈。我先把開發(fā)板上的代碼看了一遍,了解了流水燈的原理(我是看代碼會的),然后開始在原來代碼基礎上改寫;比如,你左移,我改成右移,你移的快,我給你改成慢的;感覺自己差不多了,開始在一個空白文檔上自己寫流水燈的代碼,并且成了。
第一次用的單片機并不是我現(xiàn)在最鄙視的STC系列,而是SST的,具體名字我忘記了,不過Keil里面有這一款單片機,通過串口可以仿真調(diào)試,非常方便。通過個單片機我學會了設置斷點,看寄存器,看IO狀態(tài)等等。
在工作前,我對硬件什么都不懂,連電阻上的色環(huán)代表什么意思都不知道。因為我不努力的原因吧。硬件方面,工作前不會畫板(學的99se,不會用),不懂電阻電容,哎,總之就是一顆小白菜。
工作后,我接觸到了硬件,感覺也就那些東西,學會了看手冊,學會了畫PCB,而且這些東西都是在很短的時間內(nèi)就入門了。軟件上,從匯編轉(zhuǎn)向了51C。因為C語言自己學的還不錯,所以轉(zhuǎn)51C很快。
工作后,一開始,我還一個月買一本書。后來就沒買了??床煌辍YI的書有《C陷阱與缺陷》、《C與指針》、《c primer plus》、《C專家編程》、《ARM嵌入式系統(tǒng)基礎教程》、《EMC電磁兼容設計與測試案例分析》 《嵌入式實時操作系統(tǒng)μC\OS-Ⅱ》(邵貝貝教授譯)……
電子書下了一堆,不過有一本不得不說到,《匠人手記》。以我的水平,其實不足以對這本書進行評論,但是我有權說一個字“好”!里面的內(nèi)容對工作過一段時間的人來說就是至寶。
我最喜歡的是《C陷阱與缺陷》、《c primer plus》、《匠人手記》、《EMC電磁兼容設計與測試案例分析》,分析的很透徹。我也很尊敬《ARM嵌入式系統(tǒng)基礎教程》的主要作者陳明計先生。陳先生以個人之力編寫了一個在51上運行的RTOS,這點我很佩服,我買了他編寫的《嵌入式實時操作系統(tǒng)Small RTOS51原理及應用》并試圖移植,可是我太懶了,總是有各種理由不去碰它。
話說的有點多了,現(xiàn)在看看我的學習之路是很清晰。
一,先學好C,這樣就不會為了程序上的一條語句在那里糾結(jié)半天。
二,開發(fā)板,對照著原程序,先改寫,然后自己能全部寫來了。
三,工作后,買書,看書,充電。
四,好好工作,照顧好自己的家人。
希望老鳥小鳥們開開心心學習,平平安安生活。That’s all.
By 3htech(小白菜)
討論話題````````````定時中斷的按鍵檢測程序
零 該程序產(chǎn)生的背景
話說2012年,小白菜要做一個三相電壓電流組合表,這個儀表需要進行數(shù)據(jù)輸入(小白菜以前的項目也有輸入,但是小白菜沒有仔細的研究過),并且給出的時間很長,小白菜有時間來做一些“研究處理”。拿著以前寫的按鍵檢測程序,感覺漏洞百出,于是想著趁著有時間把這部分做出來,于是便用了一個星期(實際是5天,雙休思密達)專門寫了這部分程序。
一 小白菜的應用需求
小白菜的儀表僅需要單短擊(簡稱單擊)和單長擊(簡稱長擊),單短擊要在按鍵松開后才進行識別,單長擊要在達到設定的時間閥值時進行識別(這時按鍵未松開)。
不需要考慮的情況如下,不需要連擊(可以做為多次短擊)、不需要多鍵同時擊、暫時不需要考慮輸入數(shù)字時長按某鍵,數(shù)字快速自加或自減。
該檢測程序要滿目不依賴于任何一種單片機,也不依賴按鍵連接方式,如獨立式,矩陣式(當然你要用按鍵掃描芯片那就……你要用AD式鍵盤,我……好吧,你贏了~),能夠獨立存在。
二 按鍵過程分析
1 按鍵小思考
正常的按鍵過程(不考慮非法的按鍵狀態(tài))如圖2.1.1。
圖2.1.1 正常按鍵狀態(tài)示意圖
單擊和長擊只是時間上的區(qū)分而已,但是其識別時稍有區(qū)別,單擊是在按鍵松開時進行識別的,長擊是在按鍵閉合時進行識別的。見圖2.1.2。
圖2.1.2 長短擊按鍵狀態(tài)示意圖
2 各種可能出現(xiàn)的按鍵情況
合法情況不再贅述。下面把非法(僅在本應用中非法)的情況列一下。
(1) 人為或干擾引起的單擊時間過短(主要為防干擾)。
(2) 單擊時間過長(與(1)對應,凡事有短就有長,要有度嘛~)。
(3) 按下了多個鍵(與我的應用需要相悖,所以非法)。這里有可能是同時按的,也有可能是異步按下的。
(4) 快速多次按同一個鍵。這種情況可以歸結(jié)到(1)。
(5) 我覺得沒有了,元芳,你怎么看??