因为我想做个标题党,所以今天我就是标题党。
本来对AVR和PIC两家的东西并没有高低之见,存在即是道理。公司也在用着两款芯片。AVR做产品,PIC做模块。而AVR用的比PIC早。领导层决定要用PIC的原因是“PIC有AB相接口,而且PIC的抗干扰能力不错。”这本无可厚非,用什么是领导决定的,咱也没实验过抗干扰,也没找过AVR有没有AB相,咱就一小兵,老老实实干就行。当然我主要负责AVR这块,PIC的项目我也参与过一个,做的是一小部分,也算是对PIC趴在窗户上看了看,谈不上入门。慢慢的PIC做的项目也越来越多,最主要的也集中在高速串口通讯这一块儿,而随之他们发出来的感慨就是,PIC就是好啊,进而就是"我越来越觉得AVR不咋滴了”。上次说这话的时候是PIC和AVR的串口通信,逻辑分析仪都检测到了数据但是AVR收到的不对,然后就跟我抱怨AVR咋这么烂,越来越对AVR不满意了。然后我检查程序发现,收到数据后只++ 没有<<。我在心里说“我对你也越来越不满意了”。于是我对AVR和PIC做了比较,一部分来源于网上,一部分自己实验。
关于他们引以为豪的抗干扰,大部分网上说部分的PIC的稳定性要比AVR强,也有人说日本做过实验在强磁脉冲(好像是这个)实验下PIC就是个渣渣,AVR没事。而我自己能做的实验就是用三相电机不断的开关电,放在产品旁边,AVR没问题。至于PIC的抗干扰,没做过,不过他们听某些网友说的,就已经拍板定案了,“PIC抗干扰就是牛”。哎。
关于串口通信,我们主要做的是高速通讯,他们最后做出来的PIC模块能使用115200没问题,得出的结论即是PIC就是好啊。这个没问题包括通信协议等。115200也就是1秒钟1000个帧。当然模块就是只干这一件事。AVR我没试过115200,到38400已经满足我的要求了。最近刚好有个客户要这种高速的,瞅了一眼PDF,直接上115200,妈蛋哥也能1秒钟1000+ 帧数据好么,还是在产品中。然后又瞅了一眼PDF,又改了一下,妈蛋哥能上250K好么。然后又 瞅了一眼PDF,0.5M和1M。想想还是算了,万一不行怎么办。但是这已经证明PIC这一点比AVR强不到哪不。
于是又要吐槽下PIC的编译器,也许是自己太SB已经习惯了IAR这类编译器,第一次用什么M开头的那个编译器,花了一个小时去拉那些框框,最后放弃了,但是看到那个框框老想去点,然后就全屏,好吧还得拉。好吧我上厕所去。
关于PIC的中断,没用PIC做过产品,所以没办法去评估,不过从AVR的角度去看PIC,一个程序我用到了8个中断向量,有两个向量1秒钟要进1000次,网上说PIC有两个中断优先级,好点的有8个。一个中断入口,加上PIC那速度,同等价位的PIC我感觉要完成AVR的任务我感觉够呛,好吧给你两倍价位的PIC,能做到一样么?
人那,不要看到了表面就以为是怎么样,结论下的太早会惹人烦的,给别人定好坏的时候千万得检查好自己有没有错误。就比如我现在要下“PIC就是个渣渣”这个结论的时候,心里在想一个问题,AVR的IO口输出方波最大能到多少?理论上是8M(16M晶振),但实际测到的是5M,看框图看了半天也没想明白,CLKio这个时钟最后也没找到在哪设置。
但是还是要下这个结论,PIC就是个渣渣,没错。 |