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

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

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


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

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


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


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

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


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


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


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


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


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


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


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


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


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


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


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


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


這是個(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)在看來(lái),寫(xiě)的很簡(jiǎn)陋。不過(guò)對(duì)于當(dāng)時(shí)的自己來(lái)說(shuō),已經(jīng)很知足了。

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


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


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


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


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


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


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

另外,花錢(qián)的事。怎么說(shuō)呢....先上圖

?


?

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


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


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

?

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


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


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


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


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


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


總結(jié):1、很多人寫(xiě)程序風(fēng)格很爛,什么注釋也不加。這是很坑人的,我可以負(fù)責(zé)任的告訴你,就算是自己寫(xiě)的代碼,如果沒(méi)有注釋和良好的風(fēng)格,三個(gè)月后,保證你自己也看不懂。這里貼一段當(dāng)年入職時(shí)調(diào)試的代碼,懂的人自然就懂了,知道寫(xiě)的風(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ù)熱開(kāi)始定時(shí)參數(shù)位置值存儲(chǔ)空間 ??

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

checkkey:

jnb keyflag,setbex1 ;有鍵盤(pán)中斷進(jìn)入鍵盤(pán)處理程序,沒(méi)有則跳轉(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 ????????;清除鍵盤(pán)中斷標(biāo)志

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

; ??????lcall d100ms

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

????????setb ex1 ?????????????;開(kāi)鍵盤(pán)中斷


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


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

?

?

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

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

我樂(lè)了,心想這公司招人的方式也太直接了,我就問(wèn)他:

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

誰(shuí)知道他說(shuō)了一句:

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


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


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


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


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


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

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

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

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

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


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


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


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


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


后面的工作,進(jìn)入了研發(fā)的節(jié)奏,這是我想要的。定時(shí)控制完了之后,有個(gè)項(xiàng)目,是要給一個(gè)倉(cāng)庫(kù)做一個(gè)溫度檢測(cè)系統(tǒng)。倉(cāng)庫(kù)很大,所以要用到zigbee技術(shù),放置許多無(wú)線結(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ā),買(mǎi)了幾片mega8,焊接mega8的調(diào)試板,還有下載線,杜邦線?;貋?lái)以后,又找了塊黑板,給他們講解了一下mega8如何使用。戲劇的是,去年這個(gè)時(shí)候我還在苦逼的學(xué)習(xí),今年已經(jīng)可以給人講課了。


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


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


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


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

......

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

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

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


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


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


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

?

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


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


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

?

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

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


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


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


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

?

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

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


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


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


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


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

方工:AVR mega128.

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

方工:12864.


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


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


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

?

?

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


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


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


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


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

大神,我代碼調(diào)不通,什么問(wèn)題?。?/span>?

或者,粘貼一大片代碼過(guò)來(lái),然后說(shuō):

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

?

?

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


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


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

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

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

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

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


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

?

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


那個(gè)任務(wù)交到我手上的時(shí)候,是這樣跟我說(shuō)的:設(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)在想來(lái),自己真是夠傻的,不過(guò)當(dāng)時(shí)真的就是被帶到死胡同里面去了。


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


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

?

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


接上新的液晶模塊,上電以后看效果,奇跡出現(xiàn)了?。?!屏幕很完美的從左到右慢慢點(diǎn)亮,沒(méi)有一點(diǎn)亂碼。


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


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

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

?

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


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


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


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


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

?

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


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

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


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


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


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


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


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


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

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

我:用的ICCAVR

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

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

?


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


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

?

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

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


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

?

2、學(xué)習(xí)單片機(jī)需要什么樣的基礎(chǔ)?需要學(xué)好數(shù)模電才能學(xué)單片機(jī)么?如果看一些賣(mài)開(kāi)發(fā)板的視頻教程上說(shuō)的,他們會(huì)說(shuō)的很輕松,只需要簡(jiǎn)單的數(shù)電、模電、C語(yǔ)言基礎(chǔ)就可以。確實(shí),按照視頻上講的,能夠玩轉(zhuǎn)他們的開(kāi)發(fā)板,但是學(xué)習(xí)從來(lái)就不是輕松的事。而工作中更會(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)下的問(wèn)題,你會(huì)遇到新的問(wèn)題。你會(huì)的東西越多,越會(huì)感覺(jué)自己知道的東西少。


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



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

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

?

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


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

?

?

怎么做?

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

?

然后說(shuō)編程語(yǔ)言,編程語(yǔ)言肯定離不開(kāi)VHDLVerilog的比較。


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


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


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


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


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


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


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


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


當(dāng)然,有的地方也會(huì)通過(guò)寫(xiě)工作日志的方式來(lái)記錄工作的進(jìn)度??梢钥隙ǖ氖?,在這兩種方式下工作、生活,效率都會(huì)很高。


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


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


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


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

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


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


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


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


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


總結(jié):

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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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

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

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

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


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


其次,銷(xiāo)售方面的書(shū)買(mǎi)了幾本,什么《羊皮卷》啊,《營(yíng)銷(xiāo)與策劃》啊?!抖ㄎ弧钒≈?lèi)的,不一定能看下去,但至少擺擺樣子。


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


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


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


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


呵呵,寫(xiě)的有些傷感了。

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


我想,可能就和那只井里的青蛙一樣吧。如果我沒(méi)有出去過(guò),我的世界就是井口這么大;但是當(dāng)我出去后又回來(lái)的話,再次望向井口的時(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)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉