絕影見那桌上的東西堆得是七零八落,好多東西都沒見過(guò),原來(lái)畫電路圖,電阻一個(gè)個(gè)都花生那么大,虧得這次張廠長(zhǎng)從城隍廟帶回一大串電阻,才直到原來(lái)現(xiàn)在科技進(jìn)步了,電阻都做得米粒這么小。
絕影一邊大量張廠長(zhǎng)的辦公桌一邊忍不住伸手去拿,張廠長(zhǎng)趕緊喝道:“小心,別碰!”嚇得絕影又趕緊撒手。
“這東西就是單片機(jī),小心,別給我碰壞了!
“就這么點(diǎn)大,就是單片機(jī)?”
“當(dāng)然了,AVR Mega16芯片!”
就輕輕碰了一下,張廠長(zhǎng)居然對(duì)自己大呼小叫,絕影覺得他也太小氣了,他狠不得告訴他:不要說(shuō)區(qū)區(qū)一個(gè)單片機(jī),就是數(shù)字信號(hào)處理器,老子在大學(xué)也早就學(xué)過(guò)了,而且成績(jī)還不奈。雖說(shuō)張廠長(zhǎng)是搞硬件軟件的,可說(shuō)不定自己一樣也能搞硬件開發(fā)。壞就壞在自己當(dāng)初把學(xué)電路的時(shí)間都拿去學(xué)寫程序去了,要不今天也不至于在張廠長(zhǎng)面前如此無(wú)知。
周總聽到呼聲,也從辦公室走出來(lái),見張廠長(zhǎng)桌上擺滿了電子元件,好像進(jìn)展不小,便問:“怎么樣?小張,進(jìn)度如何了?”
張廠長(zhǎng)認(rèn)認(rèn)真真地回答:“材料都已經(jīng)差不多了,就差芯片的開發(fā)了。”
“還有什么問題嗎?”
“目前還有兩個(gè)問題。一是還沒有開發(fā)板,二是還沒有集成開發(fā)環(huán)境。”
“那你有什么打算呢?”
“開發(fā)板有三個(gè)方案,F(xiàn)在我這里有一個(gè)我同學(xué)自己做的開發(fā)板,不過(guò)他應(yīng)該不會(huì)免費(fèi)送給我們;二是我們可以去買一個(gè)現(xiàn)成的,估計(jì)差不多100塊錢;三我們也可以嘗試自己做一個(gè)!
張廠長(zhǎng)說(shuō)完頓了頓,似乎在等待周總。周總皺了皺眉頭問:“自己做,有把握嗎?”
“沒做過(guò)。”
“那我們還是不要冒險(xiǎn)了。就跟你同學(xué)說(shuō)一下,看他能不能便宜點(diǎn)賣給我們。反正他的東西都借給你用了這么久了,你上手起來(lái)也比較快!
“嗯。還有集成開發(fā)環(huán)境,F(xiàn)在有兩個(gè)選擇,一是用BASIC語(yǔ)言,有現(xiàn)成的BASCOM,相關(guān)的資料和教材我都有;二是用C語(yǔ)言,對(duì)這個(gè)我不是很熟,網(wǎng)上查了一下,可以用KeilC!
“BASIC肯定不能用,這里先否決了。我們一直是用C/C++做開發(fā),技術(shù)要能夠?yàn)橐院笞龇e累。你就去調(diào)研下用C語(yǔ)言做吧。有什么不懂的多問問小絕,他對(duì)C語(yǔ)言比較熟。”
用C語(yǔ)言來(lái)開發(fā)顯然是張廠長(zhǎng)不愿意,他本來(lái)就擅長(zhǎng)BASIC,用起來(lái)可謂輕車熟路,正因?yàn)樽约荷瞄L(zhǎng)這個(gè),所以雖然在公司呆了這么久,C/C++方面他還是沒怎么提高,讓他用C語(yǔ)言來(lái)開發(fā),等于是讓他從頭開始學(xué)。
不過(guò)項(xiàng)目既然已經(jīng)下來(lái),自己就必須得頂上去,張廠長(zhǎng)也是焦頭爛額突擊C語(yǔ)言,居然在一周內(nèi)有了突飛猛進(jìn)。原以為應(yīng)付這么個(gè)小項(xiàng)目應(yīng)該沒有什么大問題,但真正做起來(lái),方才覺得書本上的知識(shí)實(shí)在太有限了。好在公司里還有絕影撐腰,周總說(shuō)了,有什么問題,找他。
絕影看了他的程序,忍不住在心里笑,所有的變量居然全部定義成全局變量,寫一個(gè)函數(shù)判斷第一個(gè)參數(shù)是否大于第二個(gè)參數(shù)明明一個(gè)return a>b;就行了,他非要寫成if(a>b) return TRUE; if(a<=b) return FALSE; 好在雖然程序?qū)懙迷,但邏輯思路還是正確的,問題就出在和芯片相關(guān)的函數(shù)調(diào)用上,那C語(yǔ)言,光一個(gè)芯片類型就花了整整幾十K的頭文件來(lái)定義,看得絕影也是暈頭轉(zhuǎn)向,只好給他說(shuō):“應(yīng)該是芯片定義的問題,你再好好看看!
絕影一席話,讓張廠長(zhǎng)如獲至寶,趕緊又埋頭忙他的去了。反正絕影又閑得無(wú)事,于是向張廠長(zhǎng)要了一份芯片官方的開發(fā)手冊(cè)研究起來(lái)。
看了一個(gè)下午,想這AVR單片機(jī)開發(fā)哪里有那么復(fù)雜,一本開發(fā)手冊(cè),一個(gè)匯編器,一個(gè)下載器足矣。那匯編肯定是難不住自己,大不了要用什么指令,要怎么設(shè)置標(biāo)志位到手冊(cè)上查就是了,虧得張廠長(zhǎng)還裝個(gè)50多M的開發(fā)環(huán)境。反正現(xiàn)在有流行玩單片機(jī),普通小市民見面打招呼不外乎就是:“吃飯了嗎?“大老板們打招呼往往是:“怎么樣?官司打贏了沒有?”搞技術(shù)的人,特別是搞硬件的,打招呼卻是:“最近玩啥板子呢?拿出來(lái)研究研究!”絕影雖說(shuō)學(xué)了點(diǎn)單片機(jī)的毛皮,但這種流行的玩藝的確還沒有實(shí)際玩過(guò),這次正好什么條件都有,于是下班的時(shí)候,把張廠長(zhǎng)拉到一邊,低聲說(shuō):“今天晚上,就把你那開發(fā)板借我用用吧,我也去過(guò)過(guò)癮!
平時(shí)難得有絕影向張廠長(zhǎng)請(qǐng)教,所以張廠長(zhǎng)倒也大方,叮囑了幾句也就把開發(fā)板借給了他。
回到家,絕影望著那開發(fā)板和芯片感慨萬(wàn)千,好不容易有個(gè)實(shí)戰(zhàn)的機(jī)會(huì)就這么給浪費(fèi)了,那太可惜了。要干就干個(gè)大家伙,就把那遙控器的芯片程序用匯編寫出來(lái),也拿給張廠長(zhǎng)和周總瞧瞧。
其實(shí)用匯編來(lái)做芯片開發(fā)也并非想像中那么復(fù)雜,主要還是這個(gè)項(xiàng)目太小,也就是從I/O口取到遙控器的輸入,編碼一下再?gòu)腎/O口發(fā)出去,關(guān)鍵是用匯編,中斷控制得自己來(lái)做,好在自己當(dāng)初在學(xué)校就專攻了匯編,這玩藝也難不到他。
忙活到半夜三點(diǎn)多,這程序居然還寫了出來(lái),其實(shí)總不過(guò)一百來(lái)行,匯編成HEX再燒到芯片里,居然才占了4K空間。
絕影洋洋得意地收起自己的作品,想像一下,你張廠長(zhǎng)能做出來(lái)又如何?畢竟是你是搞硬件專業(yè)的,我不跟你比這個(gè),但是我一個(gè)搞軟件的,也還不是一樣做出來(lái)了,你能來(lái)跟我比軟件開發(fā)么?所以說(shuō),拯救世界,征服宇宙,得學(xué)匯編。
說(shuō)有志者事竟成這話一點(diǎn)不假,用在張廠長(zhǎng)身上特別適合,經(jīng)過(guò)周總這次委以重任,他還是很快從C語(yǔ)言文盲進(jìn)步到獨(dú)自完成了芯片程序開發(fā)的水平。
上交任務(wù)這天,他和絕影心里都揣著小九九。張廠長(zhǎng)是基本上獨(dú)自一人完成了整個(gè)任務(wù),絕影呢,用匯編做出芯片的程序,在BIN體積上占了很大優(yōu)勢(shì)。這可難到了周總,本來(lái)絕影的任務(wù)應(yīng)該是輔助張廠長(zhǎng)做上位機(jī)的開發(fā),他卻偏偏要搶張廠長(zhǎng)的功勞,奈何他又是技術(shù)主管,于是他聳聳鼻子說(shuō):“小絕用的匯編,小張用的C語(yǔ)言,這樣吧,咱們明天來(lái)開個(gè)會(huì),決定用誰(shuí)的程序!
下文:瘋狂的程序員 第三十九回
本文鏈接:http://m.95time.cn/column/member/2008/6150.asp
出處:瘋狂的程序員
責(zé)任編輯:moby
上一頁(yè) 瘋狂的程序員 第三十八回 [1] 下一頁(yè)
◎進(jìn)入論壇休閑灌水版塊參加討論
|