欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 玩單片機(jī)的過來看看AVR和PIC的PK [打印本頁]

作者: 51hei人人    時間: 2016-3-12 18:11
標(biāo)題: 玩單片機(jī)的過來看看AVR和PIC的PK
最近又入手PIC的單片機(jī),之前有用AVR的,所以特想了解一下這兩種芯片的不同之處。于是搜集了網(wǎng)友的的評論。只可惜對這兩個芯片我都是用C作開發(fā),真正的區(qū)別估計(jì)要用匯編開發(fā)時才能發(fā)現(xiàn)到底用哪種芯片比較好用。
  AVR陣營:
        PIC的只有幾層堆戰(zhàn),用起來簡直繁的要死 ,尤其是PIC12C508 或者PIC16C54之類的  連個中斷都沒有,寫其程序來麻煩的要命 , 當(dāng)你連續(xù)調(diào)用兩個子程序的時候,堆棧就溢出了,你說痛苦不痛苦 ,更不要說移植UC/OS之類的操作系統(tǒng)了(操作系統(tǒng)一般都要頻繁的使用堆棧) 。就算PIC16F877還算可以,可是價格高的嚇?biāo)廊?和AVR的沒法比 , PIC唯一的優(yōu)點(diǎn)就是指令少 適合一些什么都不懂的初學(xué)者,只有33條指令,就是傻子也能學(xué)會 。但是如果你要進(jìn)行判斷大與 小于 或者等與 之類的東西時 你就會知道 PIC是多么的垃圾.。我相信能用PIC指令獨(dú)立寫出 判斷大與 小于 或者等與 的不是很多. 。如果你用AVR的指令基本上1到2條指令就能很快的判斷出結(jié)果了. 。還有PIC的RAM和ROM都要來回的分頁,把你的頭都搞大了.而AVR的都是線性地址不存在分頁問題 AVR是是我用到的性價比最高的一款芯片,其速度也是最塊的,最近有好多新的單片機(jī)或者低價位的ARM ,我看了一下,其功能比AVR的強(qiáng)不了多少 ,現(xiàn)在用涌出了一大批臺灣系列的芯片,其內(nèi)核與PIC的差不了多少 ,就是因?yàn)镻IC的內(nèi)核簡單,很容易被 。被人仿造,比如 義隆EMC 麥肯MDT HOLTEK合泰 普泰PT 通泰等等 你仔細(xì)分析一下其指令集和PIC的基本一致 有好多可以直接代替PIC的,比如EMC公司的 和MDT的 具體什么型號的我就不多說了 。但是市場上到現(xiàn)在為止沒有一款可以仿造AVR的內(nèi)核的 因?yàn)樗钦嬲暮脰|西,不是誰都能仿造的 。其實(shí)PIC的片子和臺灣的片子功能大同小異,和AVR還是有點(diǎn)差距    ,臺灣合泰的片還是不錯的 C至少有一套完整的C開發(fā)工具,尤其最近還推出了可以反復(fù)擦寫的,比如 ,HT48E06等純IO口單片機(jī).

       PIC的OTP,說是能夠降低成本不少,但是看到武漢力源的報(bào)價,簡直就是殺人,而且,OTP在開發(fā)初期特別是資本小的時候,真的怕怕,如果用UV擦除的芯片,壽命不說,光擦除就夠受的了,麻煩死了,而16F84、16F877等等芯片比起同類AVR的可開發(fā)性和價格來說基本上就是垃圾。 HT還是好一點(diǎn),價格好,開發(fā)費(fèi)用算比較低的。雖然資源少,但是家電特別是小家電來說,足夠了。 很多人用NEC或者富士通芯片,不是為了別的,只是為了防止別人解密仿制,用量很少的芯片一般很少有人破解,這是個好處。但是PIC就麻煩得很,2K/1天就可以完全破解,連地?cái)偫习宥歼@么說。

      PIC是最早推出來低價位的芯片,比如8只腳的PIC的PIC12C508 只有0。5K的ROM 還有PIC16C54 這兩個片子就是純IO口的 只有兩級堆棧,連個中斷都沒有, 就占了一個出來的最早的優(yōu)勢,但是那時候AVR是沒有研制出來,因?yàn)楫?dāng)時不需要, 主要是AVR也是ATMEL的一個系列而已,ATmel的AT89C51已經(jīng)全世界都在用。 ATMEL公司當(dāng)時不把PIC當(dāng)作一回事。 不過有人說PIC的抗干擾能力好,是因?yàn)樗墓δ苌僦挥蠭O,沒有中斷,肯定會好一些 ,但是功能多的72,或者73 抗干擾并不好。 現(xiàn)在有好多直接代替PIC的,不需要轉(zhuǎn)移程序,價格做到兩塊錢以下,但是PIC的價格連PIC12C508的都在4塊多。我不認(rèn)為PIC現(xiàn)在的價格占優(yōu)勢。 你也不會拿16C54根MEGA48去比吧 ,懂行的人一看資料就是到這兩個片子不是一碼事

       因?yàn)檐浖抡嫱瑢?shí)物還是有差別的,所以很多時候直接用實(shí)物運(yùn)行,但是用OTP問題就來了,AVR的Mega16L我可以修改5000次(我現(xiàn)在就修改了5000多次了,好幾個東西用一片),不會增加負(fù)擔(dān),但是PIC的OTP就慘了,就算6元/pcs,5000次都是3萬哪。。。。實(shí)在受不了了。。。。。原來燒廢了100多片,心痛。
        pic分頁讓人頭痛,一個函數(shù)大于分頁容量就編譯通不過了。對于一個函數(shù)大于2k似乎是設(shè)計(jì)不妥,但是在單片機(jī)范疇里,是有這種可能的,頻繁的調(diào)用對實(shí)時性是打折扣的~~~
另外,我同事在使用pic的過程中發(fā)現(xiàn),電路沒問題,c寫的軟件沒問題,但是程序就跑飛掉了,反匯編一看,果然是跳轉(zhuǎn)指令跳錯地方了,而應(yīng)該跳到的地址是在另外一頁相同偏移量的地方。這樣的問題應(yīng)該是分頁特性和編譯器造成的。解決方法更加夸張,我同事把幾個子程序長長短短的相隔排列,結(jié)果就好了,真是暈掉~~~ ,相比之下,還是信任AVR和avr-gcc。 PC上的gcc畢竟經(jīng)受了商業(yè)公司的考驗(yàn),例如google,ibm等,因?yàn)樗鼈兌际褂昧擞胓cc編譯的linux,而風(fēng)河的tornado5使用了arm-gcc-2.9.5。 移植為avr后,盡管有或這或那的問題,但是穩(wěn)定性是存在的,因?yàn)間cc的目的就是為了跨平臺,支持,至少不會出現(xiàn)PIC出現(xiàn)的問題~~~
        PIC陣營:
        用PIC的,為的是價格低。因?yàn)楹诵竞唵卧靸r低便是一大好處。可能樓主沒有考慮過,好幾年前,AVR還沒有出生時,PIC與51相比,很有價格優(yōu)勢。之于開發(fā)難度大小問題,習(xí)慣了,開發(fā)起來一點(diǎn)也不難的。就像我認(rèn)為AVR匯編很難,但老外還不是一樣用匯編寫操作系統(tǒng),而且性能很好。你認(rèn)為難的,別人不一定認(rèn)為難。再者難,只是難在工程師,老板卻不覺得。以10k的量,可以做otp加裸片。價格很低的,特別是玩具市場和小家電控制。還有AVR的內(nèi)核已經(jīng)有幾個仿造品了,而且是高檔的m128。性能比atmel的還好。只是它核芯復(fù)雜,成本高,利潤空間不大。用PIC的并不怕別人破解,因?yàn)槠平饬艘矑瓴坏绞裁村X。研發(fā)成本比破解費(fèi)更低。
         PIC的不是怎么爛的吧,它的抗干擾好象很強(qiáng)的嘛,有不少電能表都用PIC的片子的.
不過我最討厭的就是PIC什么都分頁,CALL個子程序先換頁,CALL回來再換頁.三換兩換頭都暈了

      當(dāng)時還不會單片機(jī)的時候(多年以前),有個課題需要用單片機(jī)開發(fā)一個小板子,就拿來51書來看,看了半個月,還搞不清什么叫長跳轉(zhuǎn)。。。只是周圍的人都用51來開發(fā)項(xiàng)目,更可笑的是好多人爭搶一個仿真器的情形。有一天,看到網(wǎng)上有人賣PIC開發(fā)套件,ICD2+開發(fā)板,只要不到200元,遂決定買來一套玩玩。拿到手后對照其推薦的書籍學(xué)了一下,一周完全掌握了PIC16F877,一個月板子已經(jīng)裝在儀器中用著了。當(dāng)時感覺,這就是我要用的單片機(jī)!有相見恨晚的感覺。Microchip給樣片很大方,要過幾次,全部都給了,不過后來申請的從美國寄到中國就沒有了下文,據(jù)說是被代理收走了。學(xué)PIC的另一個原因是老外用PIC的很多,網(wǎng)上可找到大量資料;相對老外用51的少,可能是開發(fā)成本比較高吧(多年以前,51還是要用仿真器仿真的)。另外,PIC的很多功能都是內(nèi)置的,用起來很方便,同事開發(fā)的51的板子有10個左右的芯片,而我用PIC開發(fā)類似的板子只要3~4只片子就解決問題。 再一個我用PIC的原因是CCS-PICC的庫很全,感覺很方便。特別是Delay_ms() Delay_cycle() Delay_us() 這些庫很好用,不用任何計(jì)算,就可將延時精確做好。還有94C46、4x4鍵盤一類的驅(qū)動也都有。效率不高可以用FLASH大一倍的芯片嘛,不差那幾元錢,因?yàn)槲业捻?xiàng)目一般附加值都是很高的。 我雖然用PIC,但我也不排斥,不鄙視其它的單片機(jī)。因?yàn)檫m合自己的才是最好的,自己不熟悉的再優(yōu)秀也和自己沒關(guān)系。任何一個MCU大廠能夠生存下來,必然有它的道理。最近在看MSP430,就是想用它做兩節(jié)干電池能用1年的自容式設(shè)備。有些人爭論什么MCU效率高、價格如何如何,但對我一個開發(fā)者來說,一個月可做一個項(xiàng)目可以賺2萬;如果用效率很高,性能很好,且價格便宜10元,但自己不熟悉的MCU,多花一個月時間,就等于少賺2萬。所以我用熟了PIC,就一直用PIC,它能很好的為我賺錢,為何不繼續(xù)用呢?所以,適合自己的才是最好的,存在即有其合理性。

哈佛總線的一個好處,就是可以允許數(shù)據(jù)總線,指令總線具有不同的寬度,  可以設(shè)計(jì)出最具成本優(yōu)勢的MCU,  這就是為什么經(jīng)融危機(jī)下MICROCHIP可以到處撒錢收購別的企業(yè),  ATMEL差點(diǎn)被收購的原因,”

        雖然我說了關(guān)于好多PIC芯片方面的不足 但是我還是很感激PIC公司的,因?yàn)槲铱梢灾苯釉赑ICC下面進(jìn)行寫程序 ,然后直接燒到兼容 PIC的片子里去(降低成本)。 由于工作的需要 我有時候不得不用PIC的東西,最近就剛剛用PIC10F202做了一個小產(chǎn)品(主要因?yàn)樗?只腳,天下沒有比他在小的東西) 其他公司的都太大了無法裝到產(chǎn)品上去,真是無奈。  本人用PIC單片機(jī)開發(fā)的東西太多了,有些情況是客戶指定要PIC的你沒辦法,還有些客戶指定要用2元的單片機(jī) 你也沒辦法,人生有時候太無奈。你想用好一點(diǎn)的片子 但是由于成本不允許,支能忍辱負(fù)重。

    可是我們老板點(diǎn)名要用PIC,為什么,就是兩塊錢就能買得到代用片,呵呵!!!
    我覺得PIC單片機(jī)事非常好用的。舉個例子:公司給我一個項(xiàng)目,前提是一定要PIC來做,首先聲明我以前沒有用過,但從認(rèn)識到編寫程序就用了 一天時間,編寫10K代碼到調(diào)試完畢用了1個月,是不是很快,但用過AVR之后我覺得AVR要比PIC難用點(diǎn),而且因?yàn)锳D轉(zhuǎn)換器的原因,現(xiàn)在已經(jīng)棄而不用了,有時間研究AVR還不如直接上ARM,性能還是強(qiáng)很多的。

從51轉(zhuǎn)過來的人,用匯編開發(fā)的,都PIC好用,指令少。如果配合強(qiáng)大的偽指令,更省心。  
一開始用C搞PIC的,也不會特別被分頁所困擾。PIC的編譯器,不論HI-TECH公司做的,還是MICROCHIP做的,都很優(yōu)秀。幾乎不曾聽過被優(yōu)化優(yōu)死掉的事情。

       中間陣營:
pic和avr各有好處;這要看你的要求和習(xí)慣;
一個公司中要是同時使用幾種單片機(jī),是有一定的壓力的;舉個例子:俺同學(xué)公司時作石油井下數(shù)據(jù)采集的,有一種是存儲式的,要放在井底一兩個星期才提升出來轉(zhuǎn)移數(shù)據(jù),老板以前請電子科大的人用51系列開發(fā)的,由于當(dāng)時并沒有用于高溫井(90度以上),所以還可以應(yīng)付;去年開始作100度以上的,51系列的麻煩就來了;工業(yè)級的已經(jīng)不夠用,到處托人情才買來一批軍工級的,可后續(xù)供貨就麻煩了;而pic系列的軍工級相對好買;avr的軍工級也比較好買;。。。 俺自己有些東西需要體積小重量小,如果用51系列就麻煩,avr和pic就好啦,但俺還是偏重于pic,這也就是習(xí)慣問題,畢竟俺去年才開始接觸avr;俺是半路出家的,學(xué)的專業(yè)是機(jī)械,但不能老是去求人做吧?反正東西也不復(fù)雜,俺也懂少許電子,早兩年接觸到pic的PICBASIC PRO編譯器,真的如獲至寶。。;以前用匯編用怕了;去年開始學(xué)AVR,如果還用匯編或C,太麻煩,幸虧有BASCOMAVR,呵呵,而且還有BASCOM 8051,..... 俺的用法是這樣的:簡單功能的用PIC,畢竟8腳的好買;涉及到復(fù)雜而且有界面要求的用AVR,畢竟BASCOMAVR對液晶和曲線等支持的多;51基本上不用啦; 對某些行業(yè)的設(shè)備要求極高,并不在乎幾百一兩千的費(fèi)用,不需要去節(jié)約那一點(diǎn)點(diǎn),而開發(fā)周期才是致命的,實(shí)際上的開發(fā)費(fèi)用絕大部分都是處在開發(fā)期的時間和人工上。。 所以不一定非要強(qiáng)調(diào)只用哪一種單片機(jī),公司內(nèi)部的習(xí)慣和技術(shù)的延續(xù)要求應(yīng)該是比較重要的。。

最早用PIC,匯編寫程序.感覺就是記住幾個常用指令程序就可以寫出來.很好用. 其實(shí)PIC應(yīng)用最大的問題就是要換頁,程序沒寫出來人先累死了.但PIC的C編譯器不大好用. AVR要配置的東西太多,個人感覺不用C的話大點(diǎn)的程序根本沒法完成,看那上百條的匯編指令頭就大了.能用匯編寫AVR的都是超人.

       PIC不是想象的那么難寫了,只是很多人寫C習(xí)慣了,寫PIC的匯編寫的少,也只是一個熟練的程度而已,PIC的分頁,只要程序結(jié)構(gòu)安排合理,也不是那么復(fù)雜的,堆棧本來就是程序員自己心里要要清楚控制的,現(xiàn)在做過幾年MCU的人應(yīng)該說很少會死在堆棧上了吧.
要說功能,個人覺得都不錯,分工目的有些不一樣了,抗干擾的,高速AD和高速PWM我一般都用PIC的,低價格的一般用和PIC兼容的臺灣MCU(EMC,MDT,ALPHA,還有幾家了,好象現(xiàn)在海爾也是和PIC兼容的啊),呵呵,做一般的控制和普通功能的就用AVR,C語言寫起來快啊(不過說句,AVR的匯編是寫過的匯編中最難寫的,以前覺得是430的,^_^,寫過個語音的,用AVR匯編,寫的人是無法形容啊)

要說PIC我覺得在這個論壇上我算是有發(fā)言權(quán)了,我用了整整三年的PIC16c5X系列(12位指令)。要說PIC的性價比好,大概說的是以前,如今PIC12fF509(與5X為同一個檔次產(chǎn)品)在華強(qiáng)北大概是4元一片(兩級堆棧,41RAM,6IO)和ATtiny12,13相比價格相當(dāng),但其落后的架構(gòu)導(dǎo)致其在性能上卻相去甚遠(yuǎn)。5x系列動不動就要切換RAM bank和ROM page,寫子函數(shù)要小心再小心,一不留神就會堆棧溢出,查表時表格放置位置有要求,長度有限制,就算你已經(jīng)調(diào)試好的代碼,很有可能在下次修改時增加兩句,而導(dǎo)致頁溢出,或表格中有幾行位置超出查表范圍,讓使你死的很難看。倒是有個C編譯器,但是不好用,也是一不留神就會出問題的, 這個不怪C編譯器的開發(fā)商,5x系列這個架構(gòu)是很難做出高效的C編譯器的。說了這些再看AVR就覺得順眼多了,tiny系列雖然資源也很少,開發(fā)起來就方便很多。最后說說抗干擾的問題,PIC的OTP芯片抗干擾是很不錯的,F(xiàn)LASH的好象就差一點(diǎn),用過AVR Mega64片子感覺不比PIC的FLASH差,還有一點(diǎn)我覺得很重要的是PIC的抗干擾性得益于其簡單的架構(gòu),在PIC中低檔的產(chǎn)品中沒有那一條指令會超過一個字(字長固定12/14)的,當(dāng)其程序跑飛時不會落到數(shù)據(jù)區(qū),總是會落到指令區(qū),從而可以很方便的使用陷阱捕捉錯誤,但是即使捕捉到錯誤也很難處理,因其堆棧指針是不可改寫,你不能使用軟復(fù)位。這時一般都會用死循環(huán),使WDT溢出而強(qiáng)行硬復(fù)位,不過要是產(chǎn)品需要低功耗,WDT(wdt熔絲開啟)不能開,麻煩就大了,跑飛幾乎沒有有效的復(fù)位手段。
    寫了這么一大段PIC的毛病,有人可能覺得奇怪了,那么不好你怎么還用呢。呵呵,因?yàn)槲矣玫牟皇钦嬲腗icroChip的產(chǎn)品,而是仿PIC的產(chǎn)品,價格超低,有錢賺,老板就要求用了,這在深圳實(shí)在不是什么秘密。







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1