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