www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號(hào)精選 > TopSemic嵌入式
[導(dǎo)讀]????本帖最早于2014年6月9日發(fā)布于百度貼吧-單片機(jī)吧,現(xiàn)在把完整版整理到公眾號(hào)上,順便改了一些錯(cuò)誤。??首先,自我介紹一下:電子工程師一枚,1986年生,09年畢業(yè),在京工作四年。之所以把自己的經(jīng)歷寫出來,一是無聊,最近項(xiàng)目剛剛做完;二是經(jīng)常逛貼吧,在年輕人身上經(jīng)常看到自...

????本帖最早于2014年6月9日發(fā)布于百度貼吧-單片機(jī)吧,現(xiàn)在把完整版整理到公眾號(hào)上,順便改了一些錯(cuò)誤。


? ? 首先,自我介紹一下:電子工程師一枚,1986年生,09年畢業(yè),在京工作四年。

之所以把自己的經(jīng)歷寫出來,一是無聊,最近項(xiàng)目剛剛做完;二是經(jīng)常逛貼吧,在年輕人身上經(jīng)??吹阶约寒?dāng)年的影子,所以不希望他們走彎路。那么現(xiàn)在,就讓時(shí)間回到2009年的夏天。


當(dāng)時(shí)剛從大學(xué)畢業(yè),專業(yè)是微電子學(xué)。嚴(yán)格地說,我的專業(yè)是制作芯片,而我現(xiàn)在的工作是應(yīng)用芯片,已經(jīng)走偏了。不過沒辦法,這個(gè)專業(yè)是學(xué)校新開的,各個(gè)老師都是學(xué)校東拼西湊過來的,那種感覺就像用韭菜和茄子做出來的大拌菜一樣,吃起來怪怪的。我到快畢業(yè)都沒想好該怎么找工作,剛好這個(gè)時(shí)候宿舍的一個(gè)哥們剛剛參加了一個(gè)培訓(xùn)班回來。他覺得很好,因?yàn)閯偤秘?fù)責(zé)培訓(xùn)的張老師來學(xué)校講課,于是跟我說:去*****吧,那里還不錯(cuò)(此處無廣告)!


我就想無頭蒼蠅忽然遇到一扇窗戶一樣,畢業(yè)了家也沒回,直接背上行李去培訓(xùn)部了。慶幸的是路上并不孤單,班里的同學(xué)凱凱、安保和超哥都一起去了。

地點(diǎn)在燕郊的創(chuàng)業(yè)大廈,食宿條件很艱苦。住宿的地方是租的一個(gè)兩居室,里面放滿了上下鋪,還有其他來參加培訓(xùn)的同學(xué),他們來自各個(gè)地方。在之后的幾個(gè)月里,我和他們結(jié)下了深厚的友情。


20個(gè)人,分成了四組,每組負(fù)責(zé)不同的項(xiàng)目。我在第一組,要做一個(gè)波形發(fā)生器出來;凱凱在第二組,做一個(gè)具有IC卡讀寫功能的智能水表;安保在第三組,做一個(gè)帶有語音提示功能的溫度報(bào)警器;超哥在第四組,做一個(gè)按鍵可控的數(shù)字電源。


剛剛分到任務(wù)我有點(diǎn)暈,因?yàn)閱纹瑱C(jī)我都還沒摸過,就要做東西,這是不是有點(diǎn)不合適?雖然在大學(xué)里學(xué)過課程,但完全是理論課,東西都沒見過,更別說做東西了。我估計(jì)凱凱他們跟我一樣心理犯嘀咕,搞不清楚什么狀況。但想想之前來參加的宿舍那哥們,他基礎(chǔ)跟我差不多,但是他能搞定,我應(yīng)該問題不大,于是咬咬牙,開始搞了。


第一步,項(xiàng)目需求分析,為期一周。老張(就是張老師,我們暗地里習(xí)慣稱他為老張)在北京工作了近十年,各個(gè)公司都呆過,正規(guī)的,不正規(guī)的都熟悉,所以要求我們第一步先去做需求分析,知道自己負(fù)責(zé)的項(xiàng)目在市場上有沒有空間,該如何定位,技術(shù)指標(biāo)如何確定,原理框圖如何繪制。


于是,我們開始了瘋狂的.......上網(wǎng),是的上網(wǎng)查資料。凡是和波形發(fā)生器相關(guān)的內(nèi)容,都下載下來,然后共享。相關(guān)的廠家、型號(hào)、技術(shù)指標(biāo)、設(shè)計(jì)方案、參照代碼、市場分析等等等等,就記得那段時(shí)間是很瘋狂的一段日子。我們像公司員工一樣簽到、簽退,卻要比他們更辛苦,因?yàn)槲覀兺砩?/span>11點(diǎn)才離開實(shí)驗(yàn)室,是每天!大腦像運(yùn)行到極致的CPU一樣,用力的查看著每一條可能有用的信息,每一次呼吸都感覺自己很累,不確定今天能得到什么結(jié)果,也不知道明天會(huì)怎么樣。于是,我不停的喝水,讓自己有更多的上廁所的時(shí)間,這樣可以多休息一會(huì)兒。


每周休息一天,日子很累,但卻充實(shí)。我已經(jīng)明顯感覺到和波形發(fā)生器相關(guān)的各種關(guān)鍵詞都充斥在我腦子里了,DDS、頻率范圍、單極性波形、雙極性波形、調(diào)節(jié)精度、輸出波形峰值等等。但這些還不夠,因?yàn)槲覀兊玫降倪@些信息都是搜集來的,并不確定可行性。一切的一切,需要下周一老張審核我們的方案。而我們的心態(tài),也從最開始的畏懼,逐漸被越來越多的疑問代替,然后抑制不住的想知道答案。


終于,開始方案審核了,老張讓我們每人挨個(gè)講解了一下自己的需求分析。然后指出不足,順便夸了幾句,給我們?cè)黾恿它c(diǎn)信心。最后給出了完整的方案。


第二步,開始動(dòng)手?NO!老張說,去逛逛北京城吧!What?我們愣了.....好吧,最后才知道,原來是去中發(fā)電子市場采購。可以這么說,在北京搞電子的,沒有人不知道中發(fā)電子市場,你能想到的一切器件,在這都能找到。而且,畢竟巧婦難為無米之炊,我們動(dòng)手,總要有器件才行啊。所以,根據(jù)方案列出器件清單。面包板有了,是老張?zhí)峁┑模瑒e的東西自己解決。于是,一群菜鳥,選了一個(gè)陽光明媚的日子,興沖沖的來到了中發(fā)電子市場,任人宰割.......


記得那天,我買完電阻,路過一家二手儀器儀表的店鋪,看著里面慢慢的儀器,不自主的就走了進(jìn)去。老板以為我是某個(gè)學(xué)校的學(xué)生,隨口跟我聊了幾句,我問他二手示波器多少錢,他說看情況,便宜的三四千,好一點(diǎn)的七八千。忽然心里一動(dòng),又問他有沒有波形發(fā)生器,他說有,然后告訴我在哪,怎么用。我很認(rèn)真的看了很久,心想這就是我要做的東西啊。


第三步,用匯編語言熟悉單片機(jī)的基本功能。是的,你沒看錯(cuò),是匯編語言!就是說,之后的項(xiàng)目也要用匯編去完成。當(dāng)時(shí)沒有想明白,但是當(dāng)我一個(gè)月后熟練的掌握51的底層結(jié)構(gòu)的時(shí)候,我已經(jīng)有點(diǎn)懂了。先從ORG開始,然后是MAIN...再然后MOVEMOVE去,別人怎么寫,我就抄過來,背下來,然后反復(fù)寫幾遍,竟然就懂了。


從對(duì)單片機(jī)的一無所知,到跌跌撞撞不小心滾進(jìn)單片機(jī)的大門,就這么發(fā)生了。那幾天是異常興奮的,我感覺我就是萬能的神,我可以控制一切芯片。每段代碼,我寫了好多遍,然后又下載了好多遍,每一次成功、失敗的過程都激勵(lì)著我前進(jìn)。


記得有一天在調(diào)試數(shù)碼管,代碼改了一下,重新燒錄,結(jié)果整個(gè)電路忽然就不工作了。我愣了,不至于啊,改動(dòng)不是很大,就算有問題,也不至于整個(gè)電路沒反應(yīng)。于是我花了一個(gè)下午查看代碼、檢查電路都沒找到問題。我問阿海,他瞄了我一眼說,你電路有問題吧...我無語,我的電路我清楚,不應(yīng)該的。到了晚上,八九點(diǎn)的時(shí)候,我想再下載一次試試吧,代碼沒動(dòng),燒錄進(jìn)去,結(jié)果忽然就好了。我瞬間愣了一下,放佛想到了什么,馬上打開AT89S52的器件手冊(cè),第一頁的一個(gè)參數(shù)解決了我的所有疑惑:該芯片的flash區(qū)擦寫次數(shù)為1000次。換句話說,因?yàn)槎啻尾翆懗绦颍瑢?dǎo)致這塊單片機(jī)的程序存儲(chǔ)區(qū)壽終正寢,已經(jīng)快被我玩死了!


現(xiàn)在還記得當(dāng)時(shí)興奮的感覺,可能是因?yàn)橐蝗函偗偘d癲的年輕人湊在一起,所以學(xué)習(xí)的過程并沒有覺得多累,反而很嗨。當(dāng)時(shí)用的ATMEL公司的89S52單片機(jī),還是用并口線下載的。先從點(diǎn)亮LED開始,然后是蜂鳴器,串口掃描,串口中斷,鍵盤和燈,鍵盤控制數(shù)碼管,軟件延時(shí),按鍵消抖等等。隨手放幾個(gè)當(dāng)年的代碼,現(xiàn)在看來,真的是慘不忍睹。


這是個(gè)串口掃描的:

?ORG 0000H

LJMP MAIN

ORG 0100H

MAIN:MOV SP,#60H

MOV TMOD,#20H

MOV TL1,#0FDH

MOV TH1,#0FDH

MOV PCON,#00H

SETB TR1

MOV SCON,#50H ?

LOOP:JB TI,FH

JB RI,SD

SJMP LOOP

SD:CLR RI

MOV A,SBUF

INC A

MOV SBUF,A

FH:CLR TI

JMP LOOP

END


這是個(gè)定時(shí)器定時(shí)的:

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP INTER

ORG 0100H

MAIN:MOV SP,#60H

MOV TMOD,#01H

MOV R2,#0FH

ACALL INTER1

HERE:JMP HERE

INTER1:MOV TL0,#0BCH

MOV TH0,#03CH

SETB EA

SETB ET0

SETB TR0

RET

INTER:MOV TL0,#0BCH

MOV TH0,#03CH

DJNZ R2,FAN

CPL P1.0

MOV R2,#0FH

FAN:RETI

?

這是個(gè)按鍵控制數(shù)碼管顯示的:

ORG0000H

LJMPMAIN

ORG0100H

MAIN:CLRP2.0

MOVP1,#0FEH

MOVA,P1

CJNEA,#0FEH,SAO1

MOVP1,#0FDH

MOVA,P1

CJNEA,#0FDH,SAO2

MOVP1,#0FBH

MOVA,P1

CJNEA,#0FBH,SAO3

MOVP1,#0F7H

MOVA,P1

CJNEA,#0F7H,SAO4

LJMPMAIN

SAO1:ACALLDELAY

MOVA,P1

CJNEA,#0FEH,PAN1

LJMPMAIN

PAN1:CJNEA,#0EEH,PD1

MOVA,#00H

LJMPSEND

PD1:CJNEA,#0DEH,PD2

MOVA,#01H

LJMPSEND

PD2:CJNEA,#0BEH,PD3

MOVA,#02H

LJMPSEND

PD3:MOVA,#03H

LJMPSEND

SAO2:ACALLDELAY

MOVA,P1

CJNEA,#0FDH,PAN2

LJMPMAIN

PAN2:CJNEA,#0EDH,PD4

MOVA,#04H

LJMPSEND

PD4:CJNEA,#0DDH,PD5

MOVA,#05H

LJMPSEND

PD5:CJNEA,#0BDH,PD6

MOVA,#06H

LJMPSEND

PD6:MOVA,#07H

LJMPSEND

SAO3:ACALLDELAY

MOVA,P1

CJNEA,#0FBH,PAN3

LJMPMAIN

PAN3:CJNEA,#0EBH,PD7

MOVA,#08H

LJMPSEND

PD7:CJNEA,#0DBH,PD8

MOVA,#09H

LJMPSEND

PD8:CJNEA,#0BBH,PD9

MOVA,#0AH

LJMPSEND

PD9:MOVA,#0BH

LJMPSEND

SAO4:ACALLDELAY

MOVA,P1

CJNEA,#0F7H,PAN4

LJMPMAIN

PAN4:CJNEA,#0E7H,PD10

MOVA,#0CH

LJMPSEND

PD10:CJNEA,#0D7H,PD11

MOVA,#0DH

LJMPSEND

PD11:CJNEA,#0B7H,PD12

MOVA,#0EH

LJMPSEND

PD12:MOVA,#0FH

LJMPSEND

SEND:MOVDPTR,#TAB

MOVCA,@A DPTR

MOVP0,A

LJMPMAIN

DELAY:MOVR7,#100

D1:MOVR6,#50

D2:DJNZR6,D2

DJNZR7,D1

RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,80H,0C6H,0C0H,86H,8EH,7FH

END

?

現(xiàn)在看來,寫的很簡陋。不過對(duì)于當(dāng)時(shí)的自己來說,已經(jīng)很知足了。

當(dāng)時(shí)的我們,沒有開發(fā)板,只有一塊面包板。所有要用的東西,都是自己焊接的。可能耽誤了很多時(shí)間,但是對(duì)后來工作中電路的檢查能力,起到了很好的鍛煉。因?yàn)槲覀兪謩?dòng)焊接每一個(gè)LED,每一個(gè)電阻,每一個(gè)按鍵,接觸了布局布線。所以導(dǎo)致我們對(duì)電路的敏感度非常高,在后來的工作中,檢查故障電路的時(shí)候可以很快推斷出故障出現(xiàn)的位置。這是那些整天叫囂仿真萬能的人體會(huì)不到的?。?!這里還是要說一句,個(gè)人觀點(diǎn):初學(xué)者少碰protues仿真,什么時(shí)候用?當(dāng)你已經(jīng)完全學(xué)會(huì)單片機(jī),在項(xiàng)目中要驗(yàn)證代碼和原理可行性的時(shí)候再去仿真。想通過protues仿真來學(xué)習(xí)單片機(jī),這真的是笑話了!


第四步,真的要?jiǎng)邮珠_始做了。玩真的!具體指標(biāo)記不清了,大概是:4×4矩陣鍵盤控制,數(shù)碼管顯示,頻率10HZ~1000HZ按鍵可控,三角波、正弦波、方波可選。難點(diǎn)主要在頻率可通過按鍵控制上,就是說從101000,我隨便輸入一個(gè)數(shù)字,輸出端都要給出相應(yīng)的頻率。頻率是通過定時(shí)器定時(shí)中斷控制的,這就要求有一個(gè)算法,能根據(jù)輸入值,計(jì)算出每次頻率更新時(shí),需要賦給的定時(shí)器初值。這涉及到16位的除法運(yùn)算,匯編里面的除法器貌似只有8位,不夠用。沒辦法,我們到處找16位除法的算法,最后用減法循環(huán)模擬了一個(gè),效果還不錯(cuò)。


雖然是一個(gè)小組,但是我們四個(gè)暗地里多少也會(huì)有點(diǎn)競爭,誰都不想落在最后。最快的是阿海,波形發(fā)生器的每一步都是他先規(guī)劃好,做出來,然后我們幾個(gè)再去模仿。當(dāng)然,不是單純的復(fù)制。矩陣鍵盤的掃描上,我跟他的算法不一樣,DAC0832的驅(qū)動(dòng)電路,我倆也各不相同。但是,不可否認(rèn)的是,他給我樹立了很好的榜樣的力量,讓我知道,這個(gè)方向,這個(gè)思路是可行的。


記不清哪一天了,是個(gè)下午。我愣愣的把示波器打開,檢測(cè)輸出波形,當(dāng)看到正弦波斷斷續(xù)續(xù)輸出的時(shí)候,我傻了,原來我真的可以做出來。而那一天,距離我們開始做需求分析,不到45天。


后面的事情,很順利了。大家的項(xiàng)目陸陸續(xù)續(xù)都出來,然后坐在一起進(jìn)行經(jīng)驗(yàn)交流。還有件事比較重要,就是學(xué)習(xí)C語言。雖然匯編效率高,但畢竟移植性太差,已經(jīng)慢慢沒落了,而C語言的生命力還很強(qiáng),很多地方都能用到。


學(xué)完C語言,開始接觸AVR430單片機(jī)。在51里面摸爬滾打了一個(gè)月,可以說,我們是把51揉碎了,一點(diǎn)一點(diǎn)學(xué)完的,跟那種自學(xué),仿真,或者看視頻的效果完全不一樣。當(dāng)我拿到430的開發(fā)板的時(shí)候,我只用了3天時(shí)間去熟悉它。前面一天熟悉開發(fā)環(huán)境和開發(fā)軟件,后面兩天看相關(guān)例程。因?yàn)槲覀儎?dòng)手過、實(shí)戰(zhàn)過、焊接過、調(diào)試過,當(dāng)我們?cè)偃タ催@些高級(jí)單片機(jī)的時(shí)候,真的是一種輕而易舉、水到渠成的感覺。


總結(jié):很多人學(xué)51學(xué)的很倉促,覺得這是個(gè)很基本的東西,快沒人用了,簡單過一下就行。大錯(cuò)特錯(cuò)!上世紀(jì)80年代,intel8051的內(nèi)核技術(shù)轉(zhuǎn)讓給各個(gè)廠家,才有了不同廠家的51單片機(jī)。而后續(xù)的各種高級(jí)單片機(jī),可能內(nèi)核已經(jīng)不是51,但在用的時(shí)候,都可以看做是一些寄存器 功能模塊。記得逛一個(gè)論壇的時(shí)候,一位工作多年的老工程師說了這樣一句話:51,妙用無窮!現(xiàn)在我才有一點(diǎn)體會(huì)到這種感覺,可以這樣說,如果你能把51單片機(jī)吃透,記住,是吃透,市面上的所有單片機(jī),你都可以信手拈來!

另外,花錢的事。怎么說呢....先上圖

?


?

這是我學(xué)單片機(jī)買的板子,還有幾塊沒照,光這些已經(jīng)花了好幾百。首先要說的一點(diǎn),也是重中之重:學(xué)單片機(jī)一定要買開發(fā)板!因?yàn)樗菍?shí)戰(zhàn)的技術(shù),你在電腦上玩賽車玩的再好,到實(shí)際中也不管用。Protuse的問題我在上面已經(jīng)說過了,因?yàn)樘斐髮W(xué)的無能,沒有搞清楚這個(gè)軟件應(yīng)該放在單片機(jī)應(yīng)用的哪個(gè)階段(個(gè)人觀點(diǎn),不喜勿噴)。


我參加培訓(xùn)花了4000元,后面,陸陸續(xù)續(xù)買開發(fā)板花了也有一千左右。但是沒有一次會(huì)覺得不值。參加培訓(xùn),我是在拿錢換時(shí)間,我一下子就跟從業(yè)十年的單片機(jī)工程師坐到了一起,單片機(jī)市場、類型、編程語言、畫圖經(jīng)驗(yàn)、應(yīng)聘技巧等等,用我老師的原話:你能學(xué)到我的一兩成技術(shù),就能正常就業(yè)了。


這里,我不是要催大家去參加培訓(xùn),我的目的是轉(zhuǎn)換大家的思路。盡量少做伸手黨,要舍得投入,自學(xué)是最慢、最沒效果的。

?

大概是11月份,進(jìn)入找工作的階段了。說起來比較丟人,因?yàn)槲倚愿裆媳容^內(nèi)向,面試的時(shí)候表現(xiàn)的不是很好,錯(cuò)過了一些機(jī)會(huì)。找到的第一份工作是在一家醫(yī)療器械的小公司,月薪只有2500,因?yàn)楫?dāng)時(shí)已經(jīng)畢業(yè)幾個(gè)月了,不想再花家里的錢,所以有點(diǎn)著急。而且,試用的階段也是比較戲劇性的。為什么?


公司那邊同意給我一個(gè)試用的機(jī)會(huì),前提是,把它們現(xiàn)有產(chǎn)品里面的一個(gè)bug改過來,限時(shí)一個(gè)月。當(dāng)我打開他們的代碼的時(shí)候,我樂了!為什么?可能這個(gè)問題對(duì)于別的新人來說很麻煩,但對(duì)我來說,太簡單了。因?yàn)樗麄兊拇a竟然是用匯編語言寫的!可能這就是緣分吧。


那個(gè)時(shí)候的我對(duì)匯編熟練到了什么狀態(tài)?我可以看代碼不需要注釋!當(dāng)然現(xiàn)在不行了,畢竟好幾年沒用了。也很感謝當(dāng)時(shí)項(xiàng)目組的王公,幫我講解產(chǎn)品的原理圖,我才能快速的明白電路原理,另外,程序風(fēng)格寫的非常好。果然,半個(gè)月不到,問題解決了,我也順利入職了。


后面的工作,比我想象的輕松很多。因?yàn)楣拘?,產(chǎn)品單一,所以研發(fā)的事情一拖再拖。主要工作就是組裝機(jī)器、產(chǎn)品配送、故障電路調(diào)試、還有售后維修。周末偶爾回到燕郊培訓(xùn)部,感受一下當(dāng)初學(xué)習(xí)的氣息,順便拿幾片不要錢的芯片。也會(huì)跟找到工作的同學(xué)聊聊工作的內(nèi)容,發(fā)現(xiàn)各有搞笑和無奈的地方。


培訓(xùn)部有一點(diǎn)很好,即使你離開了,想要什么資料,它都會(huì)幫你找來。記得10年初的時(shí)候想學(xué)一下cadence這個(gè)軟件,問那邊的朋友有沒有相關(guān)資料。結(jié)果給我發(fā)過來一個(gè)2G的系列視頻教程,是一個(gè)叫于博士的大神制作的視頻教程,從原理圖到PCB都有,把我樂壞了。因?yàn)楫?dāng)時(shí)這個(gè)教程在網(wǎng)上還沒傳開,所以顯得很珍貴。


終于,待了不到一年,大概是2010年八九月份。做夠了文案整理和國標(biāo)的研究,我感覺到了自己的退化,這不是我應(yīng)該做的。于是我提出了辭職,裸辭,就是說還沒找好下家。剛好趕上當(dāng)時(shí)換住的地方,一下子交了很多房租和押金,弄得自己很拮據(jù)。所以,這里奉勸各位,辭職以前,盡量找好下家,不然的話后果很嚴(yán)重。


總結(jié):1、很多人寫程序風(fēng)格很爛,什么注釋也不加。這是很坑人的,我可以負(fù)責(zé)任的告訴你,就算是自己寫的代碼,如果沒有注釋和良好的風(fēng)格,三個(gè)月后,保證你自己也看不懂。這里貼一段當(dāng)年入職時(shí)調(diào)試的代碼,懂的人自然就懂了,知道寫的風(fēng)格有多好:

;***************************************

keyvalue ???data ???30h

power data 31h;理療輸出功率變量

time data 32h;治療時(shí)間存儲(chǔ)變量

timepal data 33h;輸出功率定時(shí)參數(shù)低位

timepah data 34h;輸出功率定時(shí)參數(shù)高位

timelastset ????data ???35h ????;備份用戶設(shè)置治療時(shí)間

STORE_TIME ?????data ???36h ????;預(yù)熱開始定時(shí)參數(shù)位置值存儲(chǔ)空間 ??

--------------------------------------------------------------------------

checkkey:

jnb keyflag,setbex1 ;有鍵盤中斷進(jìn)入鍵盤處理程序,沒有則跳轉(zhuǎn)

????????mov r1,keyvalue ????????

k1: ????cjne r1,#0feh,k2

????????lcall powinc ??????????;跳轉(zhuǎn)到功率增加子程序段

??ajmp ?kout

k2:??cjne r1,#0fdh,k3

????????lcall powdec ?????????;跳轉(zhuǎn)到功率減少子程序段

??ajmp kout

k3:??cjne r1,#0fbh,k4 ??????

????????lcall timeinc ????????;跳轉(zhuǎn)到時(shí)間增加子程序段

??ajmp kout

k4:??cjne r1,#0f7h,k5 ??????

????????lcall timedec????????;跳轉(zhuǎn)到時(shí)間減少子程序段

??ajmp kout

k5: ????cjne r1,#0efh,setbex1

????????lcall onoff ??????????;跳轉(zhuǎn)到onoff子程序段

kout: ??clr keyflag ????????;清除鍵盤中斷標(biāo)志

????????lcall playkeysound ???;播放按鍵音

; ??????lcall d100ms

??lcall d100ms ?????????;每秒最多響應(yīng)3次按鍵

????????setb ex1 ?????????????;開鍵盤中斷


2、小公司鍛煉人,雖然待遇一般,但是接觸的東西多。一旦你換到一個(gè)新的環(huán)境,你會(huì)發(fā)現(xiàn)你比別人已經(jīng)優(yōu)秀太多了。


3、換工作的時(shí)候一定要謹(jǐn)慎,盡量找好下家再辭職,不然的話自己很被動(dòng)。

?

?

當(dāng)時(shí)在網(wǎng)上投了很多簡歷,記得有一天面試回來在公交車上。手機(jī)忽然響了,接通以后是一個(gè)中年男人的聲音:

你會(huì)用單片機(jī)么,我們這需要單片機(jī)工程師,你過來吧!

我樂了,心想這公司招人的方式也太直接了,我就問他:

您那用的是什么單片機(jī)啊,51,430還是AVR?

誰知道他說了一句:

你說的都不對(duì),430不是單片機(jī),是DSP!


我愣了,心理納悶,這是哪路神仙在玩我啊,430用了好幾個(gè)月,明明是單片機(jī),怎么到他那變成DSP了。直接說他不對(duì)吧,肯定不合適,會(huì)讓人很沒面子,于是問了問面試的地點(diǎn),第二天就過去了。誰知道這一次,迎接我的,是一個(gè)超大的坑!坑爹的公司??!當(dāng)然了,這是后話,當(dāng)時(shí)我的愿望還是很美好的。


面試的過程很詭異,現(xiàn)在想想,他貌似沒有問我什么技術(shù)問題,當(dāng)時(shí)的場景更像是一個(gè)傳銷人員給我洗腦。大致情況就是,他們公司之前是做工程項(xiàng)目的,比如修路什么的。企業(yè)很大,去年的利潤是十幾個(gè)億。但是是勞動(dòng)力密集型企業(yè),現(xiàn)在想轉(zhuǎn)做技術(shù)密集型,所以準(zhǔn)備成立一個(gè)部門,進(jìn)駐電子行業(yè),將來你們都會(huì)成為這個(gè)部門的骨干。前期待遇不是很高,月薪只有2500,但是后面部門做起來......可以想象,沒經(jīng)過什么風(fēng)雨的我,一下子就被那大叔的十幾個(gè)億吸引了,滿腦子都是錢,貌似沒怎么考慮就答應(yīng)了。


第二天去他們辦公室,心涼了一半。真的是個(gè)辦公室啊,只有不到20平米,焊接的試驗(yàn)臺(tái)都沒有,只是一個(gè)茶幾,上面放了一個(gè)尖嘴的烙鐵。尖嘴烙鐵,貌似只有入門的學(xué)生或者修理工人習(xí)慣用,正經(jīng)調(diào)試電路的人都是用平口烙鐵的。里面三個(gè)人,一個(gè)葉工負(fù)責(zé)帶頭,兩個(gè)小弟負(fù)責(zé)幫忙,其中一個(gè)人拿出本51的指令集,用手指著上面一個(gè)指令問我這是什么意思,貌似是想考考我。我瞄了一眼,順嘴一說,他就沒話了。雖然過去一年有點(diǎn)懈怠,但基本功還在。


當(dāng)時(shí)貌似是在做一個(gè)單片機(jī)定時(shí)控制繼電器的一個(gè)設(shè)備,想用弱電控制強(qiáng)電的開關(guān)。難度不大,主要是安全問題需要注意。據(jù)說去之前,兩個(gè)小弟里面的一個(gè)已經(jīng)做了快半年還沒做好,用的還是51單片機(jī)。劉工(就是昨天面試我那個(gè))問我:


你擅長哪個(gè)單片機(jī),需要多久能搞定?

我看了下他們的原理圖,以及需要實(shí)現(xiàn)的功能說:

51430,AVR都能做,十個(gè)工作日左右吧。

劉工想了想說:別用51了,用高級(jí)一點(diǎn)的單片機(jī),還能練練兵。

我說:那就AVR吧,下載調(diào)試也方便。


第二天我就后悔了,不是說做不了。正常的實(shí)驗(yàn)環(huán)境,是一點(diǎn)問題都沒有的,問題是他這里不正常,什么都沒有。沒有示波器,沒有試驗(yàn)臺(tái),沒有面包板,沒有下載線。僅有的一個(gè)烙鐵還是尖嘴的,還有一些零散的電阻和LED,以及控制電路要用到的器件。


我擦了下冷汗,算了算要用到的器件說:我去趟中發(fā)....


下載線我自己學(xué)習(xí)的時(shí)候買了一條,主要用他們提供的一塊液晶。AVR單片機(jī)控制的,具體型號(hào)記不清了,不過底層驅(qū)動(dòng)都寫好了,我只負(fù)責(zé)應(yīng)用。然后多出來的幾個(gè)引腳負(fù)責(zé)開關(guān)控制??偹阍诘谑畟€(gè)工作日搞定了。這個(gè)時(shí)候,葉工有事請(qǐng)了半個(gè)月的假,又發(fā)生了一件讓我想不到的事.....


貌似聘請(qǐng)葉工的月薪是5K多一些,而我們幾個(gè)人都是2.5K,然后劉工感覺我的工作能力可以頂替葉工,畢竟這十個(gè)工作日我解決了很多問題。而且那兩個(gè)小弟也開始向我靠攏,于是,劉工私下主動(dòng)辭退了葉工,這讓我們很是詫異,原來商場如戰(zhàn)場是真的.....


后面的工作,進(jìn)入了研發(fā)的節(jié)奏,這是我想要的。定時(shí)控制完了之后,有個(gè)項(xiàng)目,是要給一個(gè)倉庫做一個(gè)溫度檢測(cè)系統(tǒng)。倉庫很大,所以要用到zigbee技術(shù),放置許多無線結(jié)點(diǎn),然后數(shù)據(jù)上傳到電腦上。我對(duì)zigbee比較感興趣,于是著重看了很多相關(guān)的東西。最后發(fā)現(xiàn),這個(gè)技術(shù)對(duì)應(yīng)到單片機(jī)上,只是一些指令的控制,畢竟讓一個(gè)單片機(jī)工程師整天研究通信頻率、通信協(xié)議不太正常。于是劉工申請(qǐng)了幾塊模塊,讓我們進(jìn)行測(cè)試。


我選擇了mega8做為控制核心,一是調(diào)試方便,二是芯片體積小,引腳少用到溫度檢測(cè)上比較合適,第三,mega8上面有SPI接口,直接就能驅(qū)動(dòng)zigbee模塊,省得模擬了。


那兩個(gè)小弟對(duì)此一片空白,于是我又去了一趟中發(fā),買了幾片mega8,焊接mega8的調(diào)試板,還有下載線,杜邦線。回來以后,又找了塊黑板,給他們講解了一下mega8如何使用。戲劇的是,去年這個(gè)時(shí)候我還在苦逼的學(xué)習(xí),今年已經(jīng)可以給人講課了。


模塊調(diào)試的很順利,一個(gè)星期就調(diào)試通了,但是越來越感覺那個(gè)劉工人品有問題。之前辭掉葉工是一方面,后面許諾的很多福利都拿不到,然后又把銷售和研發(fā)放在一個(gè)辦公室,我一天有三分之一的時(shí)間都在聽那個(gè)銷售哥們打電話,根本沒辦法正常思考,最坑爹的是工資要拖欠三個(gè)月才發(fā)。反應(yīng)了很多次,無果。


某天的一個(gè)下午,我給他們演示了如何把采集到的溫度數(shù)據(jù)無線接收后,上傳到電腦上,然后開始和軟件部門的同事商量如何編寫上位機(jī)收集串口數(shù)據(jù)的事情。劉工加入了我們的談話,然后徹底毀了我對(duì)他的印象...


軟件部的同事之前只會(huì)從數(shù)據(jù)庫,或者固定的文件讀取數(shù)據(jù),這次我把數(shù)據(jù)發(fā)到串口上以后,他們不會(huì)采集,或者說他們之前沒做過類似的東西。


這個(gè)時(shí)候,劉工插話了:是不是跟進(jìn)制有關(guān),換成二進(jìn)制會(huì)不會(huì)好一些?

......

劉工:要不八進(jìn)制也試一下。

我看了看軟件部沉默的同事,說:劉工,這個(gè)跟進(jìn)制沒關(guān)系,是我們兩邊現(xiàn)在對(duì)接不上。

劉工:真的么,換成十六進(jìn)制呢?


我無語了,現(xiàn)在也想不起來那天是怎么結(jié)束的了,只是記得當(dāng)時(shí)心里就累了,萌生了想走的想法,于是開始投簡歷。


總結(jié):很多公司習(xí)慣返聘一些退休的高級(jí)員工,他們回來工作不是為了錢,只是為了找點(diǎn)事情做,所以工資開的很低無所謂。但這對(duì)應(yīng)屆生就有一個(gè)不好的影響,公司在招人的時(shí)候會(huì)說:我們這個(gè)德高望重的員工都拿這么點(diǎn)錢,你覺得你可以拿多少? 我相信很多應(yīng)屆生都不知道該怎么回答。


另外,面試的時(shí)候千萬不要隨便相信一些不知名公司吹出來的牛皮,公司利潤再多,發(fā)不到你手上也沒用。而且,如果方便的話,可以適當(dāng)要求參觀下辦公地點(diǎn),一定要清楚地知道會(huì)不會(huì)拖欠工資。

?

越往后面試,越會(huì)覺得面試很直接。為什么?公司找你來是做項(xiàng)目的,行就是行,不行就是不行。而面試官基本都是懂技術(shù)的,幾句話就能問出你的深淺,你前面說的再好聽,技術(shù)不會(huì)別人也很難給你機(jī)會(huì)。因?yàn)槟阋呀?jīng)不是應(yīng)屆生了,沒有培養(yǎng)的意義,所以,我們?cè)诠ぷ鞯穆飞?,一定要學(xué)習(xí)不止,這樣,當(dāng)機(jī)會(huì)來的時(shí)候,你才不會(huì)眼睜睜的看著它走掉。


簡單算了下,在第二家公司只待了三個(gè)月,zigbee的接觸與一些網(wǎng)絡(luò)協(xié)議是我最大的收獲。我想找一個(gè)靠譜的公司,讓我不用擔(dān)心餓肚子,同時(shí)也能認(rèn)真做一些靠譜的研發(fā)工作。終于,有一家臺(tái)資企業(yè)愿意給個(gè)面試的機(jī)會(huì),我把這一年的收獲整理了一下,對(duì)自己說了聲加油,然后就去了!


第二個(gè)星期,我拿到了這家公司的offer,月薪5K,四險(xiǎn)一金都有。好吧,總算解決溫飽了,剩下的日子可能會(huì)有些累,但總算是一個(gè)成長的過程,很慶幸之前經(jīng)歷的那一切。最懷念的是當(dāng)初的培訓(xùn)部,那里教的不光是知識(shí),還有學(xué)習(xí)的方法。即使有些東西是我不會(huì)的,但如果我想去學(xué),借助那里的資源和學(xué)習(xí)的方法,我可以最快的速度學(xué)會(huì)。據(jù)說現(xiàn)在已經(jīng)變成在線輔導(dǎo)了,更適合廣大的學(xué)員,但已經(jīng)離我很遠(yuǎn)了。

?

說一下這段時(shí)間斷更的原因:

1、學(xué)車,一把年紀(jì)了,竟然沒有駕照,自然要抓緊時(shí)間。而且平時(shí)動(dòng)腦多一些,動(dòng)手少一些,導(dǎo)致學(xué)車的時(shí)候各種弱智的情況都有出現(xiàn),唉,不提了?,F(xiàn)今駕照已經(jīng)到手。在這里奉勸那些還在學(xué)校的朋友,抓緊寒假或者暑假的時(shí)間,趕緊把駕照弄下來。將來工作了,你就會(huì)明白什么是人在江湖身不由己,只能一個(gè)周末一個(gè)周末的擠時(shí)間去練車。


2、把妹...用這個(gè)詞不太合適,也是緣分到了,剛好遇到一個(gè)特別靠譜的妹子,結(jié)束了本人多年單身狗的生活。理科男大部分情商都偏低一些,遇見喜歡的女生都不好去表白,本人也是錯(cuò)過了好多,不過這次總算是把握住了,狠狠地把握~~~(此處應(yīng)該有鮮花)


個(gè)人建議,該理性的時(shí)候理性,該感性的時(shí)候感性!


3、公司項(xiàng)目緊,這才是最苦逼的。最忙的時(shí)候,連續(xù)兩個(gè)星期一直在加班,女朋友都異常的生氣,不過這也沒辦法,研發(fā)這行就是這樣,任務(wù)來了就要認(rèn)真扛著。國慶前的那一個(gè)星期,整個(gè)工程部都在加班,早點(diǎn)的晚八點(diǎn)回家,晚一些的十點(diǎn)回家。

?

好了,言歸正傳,繼續(xù)苦逼的單片機(jī)學(xué)習(xí)之路。

這家臺(tái)企公司挺小的,只有不到十人,進(jìn)去以后才知道,總部在臺(tái)北,北京這里只是個(gè)研發(fā)部。老總每年春天會(huì)來呆一個(gè)月左右,視察一下工作狀況。平時(shí)都是公司的主觀大姐進(jìn)行管理,公司在人民大學(xué)地鐵口附近。不過最近幾年因?yàn)殪F霾的情況越來越嚴(yán)重,老總都不愿意來了,嘎嘎嘎~~~


幸運(yùn)的是,從家到公司,有直達(dá)的公交車,四毛錢就搞定了。面試的時(shí)候主管大姐說,如果定下來的話,希望能盡快入職,因?yàn)楣居许?xiàng)目要進(jìn)行,我一下子就興奮了,終于有東西可以做。


入職第一天,就是給我分了一臺(tái)舊電腦,然后重裝系統(tǒng)。系統(tǒng)裝好后,裝各種常用的編譯環(huán)境,51單片機(jī)用的自然是KEIL C,AVR單片機(jī)常用的有兩種ICCAVRAVRSTUDIO,自學(xué)的時(shí)候我用的后面一種,不過進(jìn)到公司里發(fā)現(xiàn)大家都用ICCAVR,于是我也慢慢換過來了。430的話,用的是iar embedded 。


第二天,技術(shù)主管方工拿了一塊板子,上面有一塊液晶屏,跟我說:這個(gè)液晶上電啟動(dòng)的時(shí)候屏幕會(huì)黑一下,你查查看是什么毛?。?/span>


我問了下:這是什么單片機(jī)?

方工:AVR mega128.

我:液晶型號(hào)呢?

方工:12864.


我一聽,心里有底了,雖然之前沒怎么用過這個(gè)液晶,但是我用過別的型號(hào)的,太復(fù)雜了不敢說,簡單的顯示個(gè)字符、符號(hào),那都不是事兒!跟方工要了這個(gè)液晶的器件手冊(cè),還有JTAG仿真器,mega128的器件手冊(cè)遍地都是,然后就開始調(diào)試了。


AVR的單片機(jī)有一點(diǎn)好處,那就是仿真器便宜,在某寶就賣四五十塊錢,仿真器上電連到板子上之后就能進(jìn)行單步仿真,每一條指令執(zhí)行的效果都能在板子上看出來,這樣對(duì)于錯(cuò)誤排查,是非常有效的。尤其是當(dāng)你用一款不怎么熟悉的器件的時(shí)候,這種直觀的效果,比你傻傻的PROTUSE仿真形象多了。


用了半天時(shí)間,把液晶的器件手冊(cè)過了一遍,一個(gè)寄存器一個(gè)寄存器的看,然后對(duì)照當(dāng)前的代碼,判斷問題出現(xiàn)的地方,就出在初始化的位置。具體黑屏的原因沒看出來,于是用仿真器連上板子,一步步查,很快,故障原因找到了,初始化順序有些問題,調(diào)整了一下就好了。

?

?

????這段時(shí)間很多人加我好友,問了很多問題,我知道的,我不知道的,都有很多。


????首先,我真的不是大神,只是在某些方面會(huì)的多一些,真正的大神,都在一聲不吭的忙著做項(xiàng)目,我也就愛閑逛,所以才多說一點(diǎn),多寫一點(diǎn)。在一些真正的高手眼里,可能我還不入流。


????其次,這段時(shí)間真的被問了很多問題,也漸漸知道了自己不擅長的地方在哪,所以今后也會(huì)更加認(rèn)真的去研究一些東西,有機(jī)會(huì)的話也會(huì)繼續(xù)分享自己學(xué)習(xí)的經(jīng)歷。


????第三,其實(shí)單片機(jī)入門真的很簡單,買塊開發(fā)板,然后跟著配套視頻學(xué)就行了,如果有不懂得地方,多聽幾遍,不理解的詞,多百度幾次,有句話說得很對(duì):百度一下,你就知道,百度十下,你就知道的太多了!現(xiàn)在我遇到問題,也會(huì)習(xí)慣性的百度,基本都能解決。


????但是,還是像前面說的,向別人問問題的時(shí)候一定要說清楚自己在做什么,不要什么都不說,然后就:

大神,我代碼調(diào)不通,什么問題啊??

或者,粘貼一大片代碼過來,然后說:

大神,我代碼有問題,這是啥原因???
最后,分享兩個(gè)查芯片資料的網(wǎng)址,平時(shí)查什么芯片的datasheet,我基本都會(huì)用這兩個(gè)網(wǎng)站
http://www.datasheet5.com?還有?http://m.dunminwenhua.com/

?

?

前段時(shí)間忙著訂婚,那叫一個(gè)緊張 激動(dòng),最興奮的還是收紅包的時(shí)候,多多的money啊~~,好了,繼續(xù)回到故事里!


現(xiàn)在想來,之前方工讓我調(diào)試那個(gè)液晶屏可能是對(duì)我的一種測(cè)試,不過當(dāng)時(shí)沒有想到那里,所以也就順順利利的過去了。稍后的日子相對(duì)輕松一些,因?yàn)轫?xiàng)目還沒有正式啟動(dòng),我每天就是看看資料,跟新公司的同事打好關(guān)系,例如時(shí)不時(shí)的打下熱水什么的,來了送快遞的,我就先跑出去。其實(shí)幫同事收快遞有個(gè)好處,我記性不好,剛見面的人很難記住名字,但是快遞單上都會(huì)有名字,這樣既當(dāng)了好人,又能熟悉同事的名字。


慢慢都清楚大家的職責(zé)和負(fù)責(zé)的方面了,不算我,研發(fā)人員一共四個(gè)

方工,精通光纖檢測(cè)方面的技術(shù)

劉工,擅長網(wǎng)線、路由方面的檢測(cè)設(shè)備

阿月(男的)主要負(fù)責(zé)DSP算法的設(shè)計(jì),

還有一個(gè)楊工,主要負(fù)責(zé)軟件、上位機(jī)方面的研發(fā),公司現(xiàn)有的上位機(jī)軟件都是他寫的,很厲害,說起各家大型的軟件機(jī)構(gòu),頭頭是道。


正式項(xiàng)目還沒有啟動(dòng),方工還在設(shè)計(jì)和規(guī)劃,公司自然不能讓我閑著,給我分配了兩個(gè)任務(wù),沒想到的是,這兩個(gè)小任務(wù)都把我折騰了一下。

?

任務(wù)1:老產(chǎn)品升級(jí)!理論上來說這種活都是很簡單的,設(shè)計(jì)原理都不用考慮,因?yàn)闁|西是現(xiàn)成的,只需要對(duì)相應(yīng)的部分進(jìn)行優(yōu)化就好了。


那個(gè)任務(wù)交到我手上的時(shí)候,是這樣跟我說的:設(shè)備上的液晶部分的驅(qū)動(dòng)IC停產(chǎn)了,于是廠家那邊重新?lián)Q了一顆IC進(jìn)行液晶模塊的設(shè)計(jì),IIC協(xié)議通信。接到我們的電路上的現(xiàn)象是字符有些亂碼,應(yīng)該是IIC的時(shí)序不兼容,調(diào)整一下時(shí)序就好了。于是我真的以為就是時(shí)序不兼容,真的就傻傻的去調(diào)整時(shí)序去了,結(jié)果那真的是一個(gè)坑爹的活?。?/span>


于是那幾天的工作就是在各個(gè)驅(qū)動(dòng)子程序里面添加 NOP,一個(gè),兩個(gè),八個(gè),十個(gè),但是怎么加,還是有亂碼,現(xiàn)在想來,自己真是夠傻的,不過當(dāng)時(shí)真的就是被帶到死胡同里面去了。


不管怎么加,都是有亂碼,而且一點(diǎn)好轉(zhuǎn)的跡象都沒有,我開始有些疑惑:不應(yīng)該這樣?。±系囊壕Ъ由虾?,顯示正常,新的液晶加上以后,打死也不正常。整個(gè)板子的供電電壓是3.3V,因?yàn)橛玫?/span>msp430f147,但是液晶部分的電源用了一個(gè)升壓芯片,升到了5V。也就是說,液晶的驅(qū)動(dòng)信號(hào)是3.3V的,但電源是5V 的,會(huì)不會(huì)是5V的液晶不應(yīng)該用3.3V的信號(hào)驅(qū)動(dòng)?


看到有吧友說我更新斷斷續(xù)續(xù),我也沒辦法 女朋友情緒不穩(wěn)定,總要我陪她,每天下班聊個(gè)電話要好久,然后就困得不行了........哎,大家忍忍吧

?

故事繼續(xù),于是我做了一個(gè)測(cè)試,從家里拿了一塊51的最小系統(tǒng)板,完完全全的5V供電,5V驅(qū)動(dòng)。把430里面的驅(qū)動(dòng)程序移植到51里面,做了一個(gè)簡單的液晶屏幕從左到右點(diǎn)亮的測(cè)試程序,很順利,沒有調(diào)試,一次就成功了。


接上新的液晶模塊,上電以后看效果,奇跡出現(xiàn)了?。。∑聊缓芡昝赖膹淖蟮接衣c(diǎn)亮,沒有一點(diǎn)亂碼。


到此為止,我覺得問題應(yīng)該解決了,就跟廠家那邊溝通,說了自己的看法:認(rèn)為新型的液晶驅(qū)動(dòng)IC性能不如老款,5V電源供電的時(shí)候,3.3V的驅(qū)動(dòng)信號(hào)無法讓液晶正常工作,然后整理文檔,開始寫總結(jié)了。


意外的是,下午的時(shí)候廠家那邊回了一封郵件,把我的推測(cè)完全推翻了!

廠家回復(fù)說:他們做過測(cè)試,給液晶屏5V供電,用3.3V信號(hào)驅(qū)動(dòng),是沒有問題的。這下我暈了,只能重新找問題。

?

于是我拿著萬用表,量信號(hào),一會(huì)兒量量電阻,一會(huì)兒量量電壓,其實(shí)自己也是暈的,感覺最有可能的結(jié)果被推翻。但是廠家那邊既然說了這個(gè)話,肯定是有依據(jù)的,畢竟要出那么多的貨。


于是重新整理思路,首先確認(rèn)自己板子上的3.3V驅(qū)動(dòng)信號(hào),用萬用表量了一下,3.29V,沒問題;然后確認(rèn)給液晶供電的5V電源芯片,用萬用表量了一下,5.11V?。?!之前培訓(xùn)時(shí)大量的焊接、調(diào)試經(jīng)驗(yàn)以及這兩天的調(diào)試過程,讓我對(duì)這個(gè)數(shù)值感覺到了一絲不安。其實(shí)之前就已經(jīng)量過,是有些偏高,但是一般的芯片兼容電壓都是比較寬的,不應(yīng)該出事。


不過現(xiàn)在排除了那么多可能,剩下的要一個(gè)一個(gè)認(rèn)真過濾。于是,用最小系統(tǒng)上面的5V接過來給液晶,GND連在一起,之前設(shè)備上的5.11V用壁紙刀割斷,上電,亂碼終于消失,瞬間,整個(gè)世界都美好了!


也就是說,因?yàn)樯龎盒酒阅懿环€(wěn)定,原本該升到5.0V的,升到了5.1V,就因?yàn)檫@0.1V的電壓,導(dǎo)致液晶屏工作不正常。當(dāng)我把這個(gè)結(jié)果告訴方工和劉工的時(shí)候,他倆也是一臉的不敢相信,因?yàn)橥ǔ碚f,電子設(shè)備雖然有額定工作電壓,但是是有一個(gè)比較寬的范圍的,比如一些芯片5V額定電壓,但是4.5 5.5也能運(yùn)行,像這次這個(gè)液晶,及其罕見。


果然,下午的時(shí)候把結(jié)果發(fā)送給廠家那邊,他們沒話說了,兼容性做的這么差,估計(jì)他們自己也沒想到。

?

這周一去了趟上海,跑了兩個(gè)地方,累的要死,都沒時(shí)間看看東方明珠塔。感受有兩點(diǎn):1、交通和北京一樣堵;2、說話很好聽,可能從小習(xí)慣了說普通話,沒有自己的第二語言,覺得每個(gè)地方的方言都有自己的特色。


好了,繼續(xù)更新。

任務(wù)2,說不上是產(chǎn)品升級(jí)了,有一臺(tái)設(shè)備,線路通斷檢測(cè)用的,使用1602做的顯示屏。可以同時(shí)檢測(cè)12條線(或者是16條線,記不清了)中間是否有斷點(diǎn)。檢測(cè)結(jié)果會(huì)顯示在液晶屏上,上級(jí)感覺顯示結(jié)果排布的不夠美觀,想修改一下,于是也交給我了。這次任務(wù)的結(jié)果么,呵呵呵呵呵呵呵...................................


當(dāng)時(shí)心里想的是,這個(gè)應(yīng)該更簡單了,電路都不用動(dòng)。單片機(jī)是AVRAT MEGA32,于是拿了JTAG做單步調(diào)試用,跟主管要了源程序準(zhǔn)備大干一場。打開代碼后,我大致看了一眼整體框架,心里有種不好的預(yù)感.......因?yàn)檫@個(gè)代碼寫的,真特么亂啊,怎么形容呢....


打個(gè)比方,原本是延時(shí)的子程序,他會(huì)寫一半,另一半放在中斷里;原本是中斷的子程序,他會(huì)寫一半,另一半放在顯示驅(qū)動(dòng)里;原本是液晶顯示驅(qū)動(dòng)的子程序,他會(huì)寫一半放在別的地方,于是整個(gè)框架你會(huì)看到他的各個(gè)地方調(diào)用各種看不出功能目的的子程序,不是一般的亂。


終于,我堅(jiān)持看了三天,實(shí)在看不懂他的流程,找方工說了當(dāng)前的狀態(tài)。方工哈哈一笑,說:交給楊工吧,這程序作者不在這上班了,風(fēng)格確實(shí)寫的亂,我們看他的程序時(shí)也是一邊看一邊罵。


方工的話可能是種安慰,還是覺得心里過意不去。后來無意中聊起這個(gè)程序的作者,聽說當(dāng)時(shí)跟公司的主管大姐鬧矛盾,故意把程序?qū)懙暮軤€,定義變量的時(shí)候經(jīng)常用fuck1fuck2來定義,后來直接走人了.....能有這樣的奇葩,也是醉了。


任務(wù)轉(zhuǎn)交給楊工,雖然他是寫上位機(jī)的,但是C語言功底很好,調(diào)試了四五天,搞定了,不過我感覺他也挺惱火這種事情的,只不過不好意思開口說臟話,后面主管大姐讓他再修改一些細(xì)節(jié),他都不愿意改,因?yàn)閷?shí)在是太亂。


我很好奇這么亂的程序他是怎么看懂的,于是就跟他聊。

他:你用軟件什么看代碼的?

我:用的ICCAVR。

他:怪不得看不懂,ICCAVR其實(shí)就是個(gè)編譯軟件,看代碼的話效果一般。你可以試試source insight,這個(gè)非常好。

果然,我裝上試了下,看起來非常舒服,所有定義的變量,子函數(shù)都能自動(dòng)識(shí)別出來,而且我后來才知道幾乎所有寫代碼的工程師都會(huì)用這個(gè)軟件,如果不知道這個(gè)軟件的話,會(huì)顯得有點(diǎn)業(yè)余....好吧,看來我真的很業(yè)余。如圖

?


隨便打開了一個(gè)文件,左側(cè)是整個(gè)程序中用到的函數(shù)名、庫名,點(diǎn)擊函數(shù)名,會(huì)自動(dòng)跳到該函數(shù)。所有引用的庫、定義的變量都會(huì)自動(dòng)識(shí)別,給字體搭配不同的顏色方便區(qū)分,顏色也是可以定義的,還有更多功能就不一一介紹了,大家慢慢研究就行了。


使用方法也是我自己慢慢摸索的,所以也不要問我教程了,因?yàn)槲乙矝]有。

?

總有朋友加我QQ,問我一些問題,問的最多的有兩個(gè):

1、51學(xué)到什么樣才算可以,這個(gè)問題確實(shí)要謹(jǐn)慎的回答。我想了想,分為內(nèi)外兩方面,內(nèi)部,熟悉51單片機(jī)的內(nèi)部結(jié)構(gòu),定時(shí)器、中斷、串口,想用哪一部分功能的時(shí)候都信手拈來,記得參加培訓(xùn)的時(shí)候,我和凱凱因?yàn)榘存I的驅(qū)動(dòng)程序爭執(zhí)了半天,他感覺只能通過中斷來進(jìn)行按鍵檢測(cè),而我用的掃描的方式,讓他覺得不可思議。外部,知道一些常用的器件,常用的總線通訊方式,例如IIC總線,SPI總線,都能用51IO口模擬。


知道上面那兩部分就夠了么?不夠!因?yàn)閱纹瑱C(jī)是用來做項(xiàng)目的東西,你只是知道了每個(gè)部分的環(huán)節(jié),沒有連起來,就好像練武功,你知道所有的招式,但如果不能把招式連起來形成一整套動(dòng)作,沒有意義。所以必須要用51做個(gè)項(xiàng)目出來,只有這樣,你才能經(jīng)歷研發(fā)的整個(gè)流程,在實(shí)際中驗(yàn)證自己所學(xué)的東西是否有用。

?

2、學(xué)習(xí)單片機(jī)需要什么樣的基礎(chǔ)?需要學(xué)好數(shù)模電才能學(xué)單片機(jī)么?如果看一些賣開發(fā)板的視頻教程上說的,他們會(huì)說的很輕松,只需要簡單的數(shù)電、模電、C語言基礎(chǔ)就可以。確實(shí),按照視頻上講的,能夠玩轉(zhuǎn)他們的開發(fā)板,但是學(xué)習(xí)從來就不是輕松的事。而工作中更會(huì)遇到各種各樣的突發(fā)狀況。


為什么上完小學(xué)要上中學(xué),為什么上完中學(xué)要上大學(xué)? 能不能直接上中學(xué)? 不行,因?yàn)樾W(xué)的知識(shí)是為中學(xué)鋪墊的,中學(xué)的知識(shí)是為大學(xué)鋪墊的。而單片機(jī)是一項(xiàng)一直在鉆研的技術(shù),你會(huì)遇到各種新的芯片要了解,新的技術(shù)去學(xué)習(xí),了解完當(dāng)下的問題,你會(huì)遇到新的問題。你會(huì)的東西越多,越會(huì)感覺自己知道的東西少。


如果單從入門來說,高中生就可以進(jìn)行單片機(jī)的學(xué)習(xí),但是要學(xué)好,都會(huì)經(jīng)歷一段時(shí)間,就看自己的努力程度了。



非常對(duì)不起吧里的朋友,一下子斷更斷了半年多。中間經(jīng)歷了很多很多,有高興的,也有不高興的,但是對(duì)一個(gè)人的人生來說,都是一場經(jīng)歷,也是一種財(cái)富。這段時(shí)間我會(huì)試著把這個(gè)帖子結(jié)束,畢竟已經(jīng)拖得太久了,而且過后可能會(huì)嘗試換一種工作方式了。

接下來,故事繼續(xù)。

?

還是在那家臺(tái)企的公司,那兩個(gè)任務(wù)完成以后,研發(fā)項(xiàng)目開始啟動(dòng)。那是第一次接觸比較大的項(xiàng)目,要研發(fā)的設(shè)備名稱是OTDR,英文全稱是Optical Time Domain Reflectometer,翻譯成中文是光時(shí)域反射儀。它是利用光線在光纖中傳播時(shí)的瑞利散射和菲涅耳反射原理設(shè)計(jì)而成的一種光纖檢測(cè)設(shè)備。


如果你聽不懂沒有關(guān)系,用人類的語言來說,光在光纖中向前傳播的時(shí)候,會(huì)發(fā)生一些散射和反射,這些散射和反射的傳播方向與光源發(fā)出的光傳播方向相反,通過檢測(cè)這個(gè)反射回來的光對(duì)應(yīng)時(shí)間的強(qiáng)度與狀態(tài),可以知道光纖的長度、故障點(diǎn)等等相關(guān)信息,所以這種設(shè)備在光纖施工的過程中是比較常用的。所以在心里我就把這個(gè)東西定義為一個(gè)檢測(cè)光纖的玩意兒。

?

?

怎么做?

總負(fù)責(zé)人是方工,對(duì)光路檢測(cè)研究比較多。記得剛?cè)肼毜臅r(shí)候,還扔給我一本光學(xué)方面的書讓我看,當(dāng)時(shí)我還納悶,這單位啥情況,不研究電子研究光。但是后面才意識(shí)到,電子電路也好、外語也好、編程也好,都只是一個(gè)工具,我們要做的是使用這些工具,按照特定的需求,做出產(chǎn)品,做出一個(gè)給人用的產(chǎn)品。例如,要做一個(gè)MP3,那么就要對(duì)音樂有一定的了解;要做一個(gè)相機(jī),那就要對(duì)圖像效果有一定的研究,比如愛自拍的人喜歡什么樣的效果。


這些知識(shí),或者需求,單單一個(gè)只懂電的人肯定是搞不懂的,你處在哪一行,就要研究哪一行的專業(yè)知識(shí),這是必然的。


方工的做法很直接,買回來國外的設(shè)備,拆了復(fù)制。不要覺得詫異,北京中關(guān)村電子市場就有很多專門抄板的,我估計(jì)很多小公司也都是這樣做的,除非你處于行業(yè)里的領(lǐng)頭羊,那樣的話你就處于被抄襲的地位,否則多少都會(huì)有一些借鑒的地方。


在我來之前,國外設(shè)備的原理圖已經(jīng)被推測(cè)的七七八八了,處理器大致分為三部分:ARM DSP FPGA


FPGA部分負(fù)責(zé)控制激光發(fā)射端和數(shù)據(jù)采集部分,FPGA收到采集的命令以后,首先控制激光頭發(fā)光,發(fā)光時(shí)間從10ns到幾百ns不等。發(fā)光的瞬間由一個(gè)并行AD對(duì)反射回來的光強(qiáng)度數(shù)據(jù)進(jìn)行持續(xù)采樣,采樣時(shí)間貌似是和發(fā)光時(shí)間相等,時(shí)間太久記不清了。采到的數(shù)據(jù)存到FPGA內(nèi)部的RAM中,經(jīng)過簡單的處理然后通過MCBSP接口發(fā)送給DSP


DSP對(duì)FPGA收到的數(shù)據(jù)進(jìn)行分析,如果光纖是一條完整的線路,那么反射回來的光強(qiáng)度會(huì)隨著時(shí)間逐步衰減;但如果一條光纖是由兩條或者多條光纖通過端子連接起來的,那么連接點(diǎn)位置會(huì)反射回的光強(qiáng)度就比較大,通過判斷光強(qiáng)度隨時(shí)間變化的一個(gè)關(guān)系,就能大致知道光纖有沒有斷點(diǎn)或者彎折的地方,這是OTDR的大致原理。


ARM部分負(fù)責(zé)統(tǒng)籌全局,同時(shí)驅(qū)動(dòng)屏幕把采樣結(jié)果通過曲線的形式顯示出來,畢竟圖像更容易讓人理解。


ARM部分和DSP部分都有人負(fù)責(zé)了,就剩下一個(gè)FPGA部分沒人管,于是乎,我又開始搞FPGA?,F(xiàn)在回想起來,那段時(shí)間其實(shí)也是挺開心的日子,衣食無憂,每天也能學(xué)到東西,領(lǐng)導(dǎo)提的要求都能滿足。


大學(xué)的時(shí)候接觸過CPLD,那時(shí)候用的編譯環(huán)境還是MAX PLUS II,編程語言是VHDL。MAX PLUS IIaltera公司提供的開發(fā)工具,據(jù)說在2000年(百度上查到的數(shù)據(jù),官方的數(shù)據(jù)沒查到)左右就停止更新了。這次使用的器件是altera公司的cyclone ii系列的EP2C8T144MAX PLUS II不支持,于是轉(zhuǎn)向了quartus II。


剛開始用的quartus II版本好像是7,有一個(gè)邏輯編譯死活過不去,是用switch語句寫的一個(gè)狀態(tài)機(jī),當(dāng)時(shí)覺得挺奇怪,因?yàn)榫褪且粋€(gè)很簡單的判斷過程,于是卸掉quartus II 7,改為quartus II 9,再次編譯,我靠,竟然就過去了。當(dāng)時(shí)百度了一下原因,好像是因?yàn)檐浖陨砉δ芟拗啤K袁F(xiàn)在養(yǎng)成一習(xí)慣,工作中比較重要的軟件,只要不是特別麻煩的,都會(huì)盡量升級(jí)到比較新的版本,即便不是最新,也是第二新。


印象中quartus ii 9這個(gè)版本還帶有仿真的功能,但是到了10就沒有了,后面的應(yīng)該也沒了吧。一開始心里還有些不習(xí)慣,沒了仿真怎么驗(yàn)證,后來發(fā)現(xiàn)了一款功能更強(qiáng)大的仿真軟件:ModelSim。


關(guān)于FPGA的仿真這里要說一下,玩過單片機(jī)的,調(diào)試的時(shí)候都習(xí)慣有個(gè)仿真器,這樣的話程序下載進(jìn)去,通過點(diǎn)擊電腦這邊的仿真界面能控制實(shí)際電路中的單片機(jī)的運(yùn)行步驟,執(zhí)行幾行指令、或者執(zhí)行到什么地方都能夠控制,實(shí)時(shí)在電路上看到現(xiàn)象,哪里出了問題能立刻找到,這樣調(diào)試非常方便。


但是FPGA中沒有這樣的仿真器(NIOS II軟核仿真除外),真的沒有!也就是說我們沒辦法像在線調(diào)試單片機(jī)那樣一步一步的在線調(diào)試FPGA,怎么辦?


答案是軟件仿真!關(guān)于軟件仿真,我找到了ModelSim。


ModelSim的使用方法很簡單,需要你會(huì)寫tesebench。也就是說你要模擬FPGA在電路中的工作條件,給它發(fā)送相應(yīng)的控制信號(hào),這樣的話FPGA的程序就會(huì)運(yùn)行起來,無論是外部引腳還是內(nèi)部變量都會(huì)跟隨運(yùn)行時(shí)間發(fā)生變化,只要觀察特定時(shí)間的信號(hào)是不是符合我們的要求就可以了。


我在網(wǎng)上找了幾個(gè)例子,參照了一下,發(fā)現(xiàn)寫法很簡單,也是基于硬件語言,基本上一天就搞定了。如圖所示,非常爽~~~

?

然后說編程語言,編程語言肯定離不開VHDLVerilog的比較。


由于就在那段時(shí)間用了一下可編程邏輯器件,所以這兩種語言的優(yōu)劣也不太清楚,VHDL據(jù)說是美國軍方設(shè)計(jì)的編程語言,相對(duì)復(fù)雜一些,而Verilog是民間研發(fā)的,入門更簡單一些。所以當(dāng)時(shí)就選擇了Verilog


C語言與VHDL或者Verilog語言最大的區(qū)別是什么?


很多初學(xué)者會(huì)覺得里面的if語句,或者while語句用法差不多,感覺區(qū)別不大。但實(shí)際上,C語言是順序執(zhí)行的語言,VHDLVerilog語言是并行執(zhí)行的語言,這是他們最大的區(qū)別。


順序執(zhí)行指的是處理器只有一條任務(wù)線,所有的任務(wù)按照一定的順序排在這條線上,按照從上到下的順序循環(huán)執(zhí)行。偶爾有一些中斷、定時(shí)的需求,處理一下就完了,執(zhí)行的任務(wù)以任務(wù)線上的需求為主。


但是VHDL或者Verilog語言不一樣,它是并行執(zhí)行的語言,可以有多條任務(wù)線,這些任務(wù)線是同時(shí)進(jìn)行的。


打個(gè)比方,C語言是一條流水線,一道工序挨著一道工序,想增大單位時(shí)間內(nèi)的工作量的話,只能加快速度。但是VHDL或者Verilog語言是多條流水線,想增大單位時(shí)間內(nèi)的工作量?簡單,再開一條流水線就行了。


硬件部分方工已經(jīng)設(shè)計(jì)好了,我主要負(fù)責(zé)在上面編程。剛開始的時(shí)候只是測(cè)試電路上的一兩個(gè)功能,任務(wù)少,我還沒什么感覺。但是當(dāng)需求多了以后,我就有了一種明顯的精神分裂的感覺,感覺腦子里有團(tuán)漿糊。這是寫慣了C語言順序執(zhí)行的程序,寫Verilog出現(xiàn)的一種癥狀。適應(yīng)了幾天,然后就過去了。


那段時(shí)間每周都會(huì)開例會(huì)(這句話不標(biāo)準(zhǔn),應(yīng)該是大部分公司都會(huì)定期開會(huì)),上一周的工作總結(jié),下一周的工作安排。作為一個(gè)性格內(nèi)向的人,我是比較抵觸這種會(huì)議的,因?yàn)樾枰l(fā)言。但實(shí)際上這種會(huì)議對(duì)于工作的促進(jìn)是非常有用的,它能讓你快速的理清楚你上一周做了什么,下一周應(yīng)該做什么。進(jìn)度到底是快了還是慢了。


當(dāng)然,有的地方也會(huì)通過寫工作日志的方式來記錄工作的進(jìn)度??梢钥隙ǖ氖牵谶@兩種方式下工作、生活,效率都會(huì)很高。


前期調(diào)試的過程,大部分都比較順利,激光器的開關(guān)控制、數(shù)據(jù)的采集、數(shù)據(jù)的處理,雖說編程語言不一樣,但是有大量可借鑒的經(jīng)驗(yàn)。唯獨(dú)一個(gè)地方出現(xiàn)了問題,那就是數(shù)據(jù)的上傳?,F(xiàn)在回想起來,這個(gè)問題算是不大不小,但是解決不了會(huì)讓人無比惡心的一個(gè)問題,那就是數(shù)據(jù)的上傳。


數(shù)據(jù)在FPGA,要上傳到DSP里,通過DSPMCBSP接口。FPGA上面沒有這個(gè)接口,需要用普通的IO模擬,于是我把這個(gè)接口的時(shí)序圖拿來,一個(gè)時(shí)鐘一個(gè)時(shí)鐘的卡,確保每段時(shí)間都滿足。但是上傳的時(shí)候,死活傳不上去,比之前電壓的問題還要惱火。需要上傳的有幾百個(gè)字節(jié)的數(shù)據(jù),每次只能傳上去一個(gè),然后就沒反應(yīng)了??傊軔阑?。


這個(gè)問題卡了我好幾天,方工也過來看了幾次,一開始他也覺得是個(gè)小問題,但是好幾天沒動(dòng)靜,他也急了。我把情況跟他說了一遍,時(shí)序方面的事他對(duì)我也很放心,畢竟之前的工作表現(xiàn)都很好,不可能連個(gè)時(shí)序圖都模擬不好。他在他的位子上坐了一會(huì)兒,然后跟我說:


實(shí)在不行,改并行接口!

我心里接受不了這個(gè)結(jié)果,說:很簡單的問題,不應(yīng)該,而且那樣的話板子要重畫了。


方工又想了想:你在傳送的時(shí)候,每個(gè)字節(jié)之間多加一點(diǎn)延時(shí)試試。


我當(dāng)時(shí)無精打采,明白方工的意思,但是心里對(duì)那個(gè)DSPdatasheet有股怨念:老子明明按照你的時(shí)序走的,為什么就是不行?


但是工作的事不能耽誤,于是我在每個(gè)字節(jié)之間加了一小段延時(shí),好像是幾個(gè)us吧。再試,忽然就特么好用了,幾百個(gè)字節(jié)幾秒鐘就傳了上去。記得當(dāng)時(shí)渾身都放松了下來,心里一塊大石頭落了地。然后楊工寫了個(gè)小軟件,把采到的數(shù)據(jù)繪制成曲線,當(dāng)然,這其中有一定的處理,不過已經(jīng)不是我的工作范疇了。


繪制出來的曲線和我們買的樣機(jī)生成的曲線幾乎一致,在斷點(diǎn)處都會(huì)反射回較強(qiáng)的光,但是隨時(shí)間衰減的特性表現(xiàn)的不是很明顯,于是楊工和方工兩個(gè)人又開始到處找資料、研究算法。至于我,可以暫時(shí)休息一會(huì)兒了~~~


總結(jié):

1、FPGA與單片機(jī)是兩種不同的器件,擅長的領(lǐng)域不一樣。注意,最關(guān)鍵的一點(diǎn):FPGA的本質(zhì)是一堆邏輯門,通過硬件描述語言轉(zhuǎn)換成電路,所以它是沒有CPU的,它是一大坨可以任意定制的邏輯器件。當(dāng)然通過一定的方法可以給它嵌入一個(gè)CPU軟核,這樣的話,它可以變成CPU 邏輯電路。在并行運(yùn)算的方面具有非常大的優(yōu)勢(shì),多用于通信、圖像處理等等。


單片機(jī)是有CPU的,可以被理解為跑程序的微型電腦。相比較而言,單片機(jī)C語言偏向于軟件。


2、關(guān)于經(jīng)驗(yàn)。方工隨口一說加個(gè)延時(shí),然后問題就解決了,靠的是什么?貌似也只能是以往大量的經(jīng)驗(yàn)。


但是關(guān)于經(jīng)驗(yàn),有時(shí)候也是有爭議的。如果過于依賴經(jīng)驗(yàn),就會(huì)變成知其然不知其所以然,最常見的一句話:


這個(gè)電阻(或者電容)選這么大就行,經(jīng)驗(yàn)值!


相信很多人都聽過這句話,我個(gè)人比較懶,聽到這種答復(fù)也懶得追究,畢竟省事、省心。但是對(duì)于愛刨根問底的人來說,這句話解決不了任何問題。


這里給大家的建議是:把經(jīng)驗(yàn)當(dāng)成一個(gè)工具,可以經(jīng)常使用,但是不能過度依賴,同時(shí)要搞清楚每一個(gè)“經(jīng)驗(yàn)值”背后的原理。畢竟設(shè)計(jì)電路、分析電路,最本質(zhì)的依靠的還是原理,而不是經(jīng)驗(yàn)。


3、流程圖。關(guān)于流程圖,很多人都不畫,直接去寫程序。倒不是說不行,分情況。


第一種,如果一段程序,你之前寫過類似的,整個(gè)流程已經(jīng)非常熟悉了,那樣的話是完全可以不畫流程圖的。


第二種,你要做的是一個(gè)新產(chǎn)品,之前沒有寫過類似的程序,那么強(qiáng)烈建議你畫一下流程圖。這樣的話,整個(gè)過程、其中的細(xì)節(jié)、先后的順利你就都能整理清楚,甚至一些沒考慮到的細(xì)節(jié)在畫圖的時(shí)候自然而然的就考慮到了。


經(jīng)常有一些新手,程序不知道怎么寫。但是我問他這個(gè)功能他知道,我問他那個(gè)功能,他也知道,所以不是不會(huì)寫,而是理不清流程。不知道應(yīng)該先做什么后做什么,只要把流程圖畫出來以后,相信一半以上的問題都能解決。


OTDR的項(xiàng)目告一段落之后,方工覺得我能力還可以,因?yàn)槲铱偸悄茉谒麄冇X得沒問題的地方發(fā)現(xiàn)問題,并解決問題,于是開始讓我獨(dú)立負(fù)責(zé)一些簡單的項(xiàng)目。


事實(shí)上,電子產(chǎn)品設(shè)計(jì)調(diào)試的過程中,解決問題很麻煩,發(fā)現(xiàn)問題同樣很麻煩!注意,這里說的是發(fā)現(xiàn)問題的根源。問題根源找到之后,解決起來就相對(duì)容易一些。就如同看病一樣,如果找不到病因,那么你是沒辦法對(duì)癥下藥的。


獨(dú)立負(fù)責(zé)項(xiàng)目的過程很激動(dòng),也很辛苦。因?yàn)樵诖酥?,方案都是由別人確定好,或者分工好,然后我這里執(zhí)行的是一個(gè)確定好的方案。但是獨(dú)立負(fù)責(zé)的話,你就要考慮很多之前沒考慮過的事,例如方案是否合理,怎樣能滿足需求,成本如何控制更低一些,器件如何選型等等。這些事情都是你自己要先拿出一個(gè)基本的思路,然后再和別人討論的。如果沒有足夠的知識(shí)儲(chǔ)備,做這些事是很吃力的。


獨(dú)立研發(fā)的過程不多說了,因?yàn)樯婕暗疆?dāng)時(shí)公司的一些產(chǎn)品原理,萬一手一哆嗦寫多了不好。上面的項(xiàng)目我只涉及了三分之一的部分,寫出來也沒有太大影響。


總之,那幾年經(jīng)歷了一些項(xiàng)目,學(xué)到了很多東西。有些事,真的要自己經(jīng)歷過才能明白,加班在公司過夜的情況也出現(xiàn)過,但是很開心,沒有怨言。


在北京的日子雖然悠閑自在,但畢竟不是家,所以從2013年開始我就在想一件事,北京對(duì)我來說到底是什么?這是每個(gè)去大城市的人必然要思考的一個(gè)問題,每個(gè)人的答案都不一樣,因?yàn)槊總€(gè)人的經(jīng)歷也都不一樣。


第一個(gè)問題:要在這里定居嗎?不會(huì)!雖然這里很發(fā)達(dá),什么都有,但是缺少家的感覺,更不要說那恐怖的房價(jià)。我是個(gè)戀家的人,肯定會(huì)回去。而且父母年紀(jì)大了,需要人照顧。


第二個(gè)問題:要在這里呆多久?這個(gè)問題很難回答,當(dāng)一個(gè)問題很難回答的時(shí)候,可以使用排除法。福爾摩斯說過一句話:把所有的不可能排除掉,剩下的,無論多么不可思議,它就是真相。


呆多久我不知道,但是我知道的是,呆的越久,越不想走。因?yàn)槲艺J(rèn)識(shí)的朋友很多都在這邊,生活習(xí)慣也越來越適應(yīng)這里。呆的越久越走不掉,既然這樣的話,越早離開這里越好。所以,意識(shí)到這個(gè)問題以后,我就開始考慮回家的事。


第三個(gè)問題:回去以后能做什么?繼續(xù)搞自己專業(yè)?我打開智聯(lián)招聘,看了一下廊坊本地的相關(guān)職業(yè)。果然,比北京少太多太多太多太多了....但也不是完全沒機(jī)會(huì)。


花錢找個(gè)事業(yè)單位上班? 每天開關(guān)電腦,然后喝茶看報(bào)紙?老媽到時(shí)挺希望我找個(gè)這樣的工作,但是我閑不住??!


假如專業(yè)沒得搞,事業(yè)單位也去不了,怎么辦?能否找到自己的第二職業(yè)?

這三個(gè)問題差不多是每個(gè)離開大城市的人都可能會(huì)考慮的,我自己么,呵呵~~~

仔細(xì)盤算了很久,當(dāng)時(shí)我得到的答案是:首選當(dāng)然是找到自己專業(yè)相關(guān)的工作;次之的話,去做銷售,畢竟門檻低,為此還買了好多相關(guān)的書去學(xué)習(xí);最后,如果前面兩個(gè)選擇都不合適,那就花錢找個(gè)事業(yè)安心單位上班吧。

這三個(gè)答案確定下來以后,就開始著手離開的事了。


首先,專業(yè)不能丟。我和單片機(jī)之間已經(jīng)不是簡單的工作關(guān)系了,而是一種骨子里的喜愛,即便換了工作,我也會(huì)在業(yè)余的時(shí)候研究一下。而且還會(huì)繼續(xù)學(xué)習(xí),有位前輩曾經(jīng)說過一句話:高級(jí)電子工程師和初級(jí)電子工程師之間的區(qū)別在于,在面對(duì)基礎(chǔ)知識(shí)的時(shí)候,高級(jí)工程師基本上是沒有盲點(diǎn)的。我想,我會(huì)一直向著這個(gè)方向?qū)W習(xí)的。


其次,銷售方面的書買了幾本,什么《羊皮卷》啊,《營銷與策劃》啊?!抖ㄎ弧钒≈惖?,不一定能看下去,但至少擺擺樣子。


第三,開始和公司提出辭職,同時(shí)和北京的朋友一一告別。公司那邊很意外,開始挽留,我把真實(shí)的想法跟公司同事說了之后,同事也表示理解。


為什么理解?因?yàn)槠渲幸粋€(gè)同事也有了類似的想法,只不過他更瀟灑一些。怎么瀟灑?那哥們2009年在北京沙河買的房子,當(dāng)時(shí)花了60萬左右,后來漲到了200萬。由于個(gè)人問題一直沒解決,于是在我辭職沒多久他也辭職,把房子賣了,然后全國旅行去了,我那個(gè)羨慕啊~~~


走的那天,主管大姐安排我們幾個(gè)同事一起吃了個(gè)飯,算是給我送行。很感激這家公司的幾個(gè)同事,有問題一起分析,沒有太多勾心斗角,平淡,真誠。


其他的一些朋友也找時(shí)間給我送別,當(dāng)初一起來北京的幾個(gè)同學(xué),有的已經(jīng)離開了,還有的貸款買了房子,準(zhǔn)備留下來。當(dāng)初來北京時(shí)的意氣風(fēng)發(fā)已經(jīng)磨掉了很多,可能這就是成長吧。沒有挽留,也沒有喝的酩酊大醉,就是坐在一起聊聊天,如果時(shí)間倒回到剛來北京的那兩年,估計(jì)兩者畫面差不多,只是幾年前的畫面里多了一些人,每個(gè)人臉上還有很多的憧憬。


呵呵,寫的有些傷感了。

所以,把一切收拾妥當(dāng),沒用的扔掉,2014年我回到了廊坊,一個(gè)熟悉又陌生的城市??赡苡械娜藭?huì)說:你在外面讀了那么多年書,又在大城市生活過,可是現(xiàn)在回到小城市,和那些一直生活在小城市的人有什么區(qū)別呢?


我想,可能就和那只井里的青蛙一樣吧。如果我沒有出去過,我的世界就是井口這么大;但是當(dāng)我出去后又回來的話,再次望向井口的時(shí)候,我必然會(huì)看到不一樣的風(fēng)景!

本帖結(jié)束。

??

單片機(jī)用戶分享一篇精品電子電路方面的經(jīng)驗(yàn)筆記或教程。" data-from="0">

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

串口作為單片機(jī)開發(fā)的一個(gè)常用的外設(shè),應(yīng)用范圍非常廣。大部分時(shí)候,串口需要接收處理的數(shù)據(jù)長度是不定的。那么怎么才能判斷一幀數(shù)據(jù)是否結(jié)束呢,今天就以STM32單片機(jī)為例,介紹幾種接收不定長數(shù)據(jù)的方法。

關(guān)鍵字: 單片機(jī) 串口 STM32

單片機(jī)誕生于1971年,經(jīng)歷了SCM、MCU、SoC三大階段。單片機(jī)由以前的1位、4位、8位、16位,發(fā)展到現(xiàn)在的32位甚至64位。當(dāng)前國內(nèi)MCU廠商已有上百家,對(duì)標(biāo)進(jìn)口芯片的情況非常嚴(yán)重,導(dǎo)致國內(nèi)MCU產(chǎn)品將陷入同質(zhì)化...

關(guān)鍵字: 單片機(jī) MCU 市場

(微控制單元 MCU(Microcontroller Unit),又稱單片機(jī),是把中央處理器(CentralProcess Unit; CPU)的頻率與規(guī)格做適當(dāng)縮減,并將內(nèi)存(memory)、計(jì)數(shù)器(Timer)、US...

關(guān)鍵字: 單片機(jī) 芯片 CPU

在疫情的影響下,出門后、用餐前使用酒精消毒已成了人們的日常,而酒精噴霧機(jī)也因此變得十分熱銷。為了避免交叉感染的風(fēng)險(xiǎn),自動(dòng)酒精噴霧器也就應(yīng)運(yùn)而生。不同于傳統(tǒng)手動(dòng)噴霧器不美觀、手部接觸不衛(wèi)生的bug,此款自動(dòng)感應(yīng)酒精噴霧器使...

關(guān)鍵字: 芯嶺技術(shù) 方案開發(fā) 解決方案 單片機(jī)

在實(shí)際的單片機(jī)控制系統(tǒng)中,有時(shí)候會(huì)使用數(shù)字邏輯芯片對(duì)單片機(jī)和受控元件進(jìn)行隔離,以保護(hù)單片機(jī),或者令單片機(jī)更好地對(duì)后級(jí)進(jìn)行控制。

關(guān)鍵字: 單片機(jī) 數(shù)字邏輯芯片 受控元件

MH32F103AVET6使用高性能的32位內(nèi)核,內(nèi)置了多達(dá)2個(gè)高級(jí)定時(shí)器、10個(gè)通用定時(shí)器、2個(gè)基本定時(shí)器、3個(gè)12位的ADC、2個(gè)12位的DAC,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口包括:3個(gè)SPI接口、2個(gè)I2S接口、2個(gè)I...

關(guān)鍵字: 單片機(jī) MCU

最近由于換季,天氣突然的轉(zhuǎn)涼,大家也是直呼好冷。天冷了自然是要注意防寒保暖。一個(gè)能夠當(dāng)充電寶用的暖手寶會(huì)是你最好的陪伴。暖手寶是一種非常便捷易用的發(fā)熱工具,并且體形小巧,可以隨身攜帶并輕易握在手中,也可以放置在身上的其它...

關(guān)鍵字: 芯嶺技術(shù) 方案開發(fā) 解決方案 單片機(jī)

XL32F003 系列微控制器采用高性能的 32 位 ARM?Cortex?- M0+ 內(nèi)核,寬電壓工作范圍的MCU。嵌入高達(dá)64 Kbytes flash和8 Kbytes SRAM存儲(chǔ)器,最高工作頻率32 MHz。包...

關(guān)鍵字: 單片機(jī) MCU

電動(dòng)洗鼻器是一種全新的鼻腔清潔工具,一般是通過水壓將生理鹽水送進(jìn)鼻腔,借助于生理鹽水的殺菌作用及水流的沖擊力,將鼻腔內(nèi)已聚集的致病菌及污洉排出,從而使鼻腔恢復(fù)正常的生理環(huán)境,恢復(fù)鼻腔的自我排毒功能,達(dá)到保護(hù)鼻腔的目的。讓...

關(guān)鍵字: 芯嶺技術(shù) 方案開發(fā) 解決方案 單片機(jī)

大家好,我是小舒,今天我?guī)砹艘粋€(gè)開源項(xiàng)目。學(xué)習(xí)單片機(jī)的小伙伴,對(duì)J-link一定不會(huì)陌生。J-link可以使用JATA和SWD接口進(jìn)行在線Debug和程序的燒錄,曾經(jīng)一段時(shí)間,某寶上J-Link鋪天蓋地,各種各樣,價(jià)格...

關(guān)鍵字: 開源項(xiàng)目 J-link 單片機(jī)

TopSemic嵌入式

40 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉