钟爱avr 比较tiny24和PIC16f684, 还是选择了PIC,无奈,谁叫他强呢!!

2020-02-10 08:35发布



注意RC振荡精度和功耗,一个字-------强!!!

不过avr的功能比较多点!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
48条回答
hexenzhou
1楼-- · 2020-02-15 19:10
35楼也要看看avr的指令集,大部分都是单周期的,而不是极少数。
machunshui
2楼-- · 2020-02-15 22:36
 精彩回答 2  元偷偷看……
machunshui
3楼-- · 2020-02-16 04:26
例如avr指令,



MOV RD,Rr是寄存器到寄存器寻址,是单周期,



LD和ST类指令,是RAM到寄存器,寄存器到RAM的直接寻址是双周期,



实际统计:



AVR纯粹单周期指令57条,

双周期指令28条,

三周期指令7条,

四周期指令2条,

1或者2周期指令25条,





我们看到,就单周期指令的数目来说,也就一般左右,远远算不上绝大部分,



程序里面使用频度最高的LD和ST类指令是双周期的!!



就程序里面的指令使用频度而言,大部分不是单周期的!!!





PIC16虽然4振荡周期一个指令周期,但是其绝大部分大部分是单指令周期的指令,只有两条指令不是,



因为PIC的所有寄存器都是RAM映射的.



本贴被 machunshui 编辑过,最后修改时间:2008-12-29,23:51:59.
su_mj000
4楼-- · 2020-02-16 05:28
关于PIC和AVR谁劣谁优的话题由来已久,看来今后也将一直持续下去。有人对此嗤之以鼻,不消一顾。但我觉得这种争论或讨论

还是有益的,至少可以引发如何评价一款cpu性能的方式方法。



如果单从运行速度而言,我觉得avr无疑远胜于pic。道理很简单,大部分PIC16/PIC18的最高晶振频率为20mhz,指令周期为4分频 --- 5mhz;而AVR最高晶振频率与指令周期均为20mhz。问题是,单凭MIPS指标衡量一款CPU的速度是不够的,有时甚至会产生误导。重要的

是要考虑指令效率或实际应用效率。这里面引出另一个问题,即应用场合或运算对象。如果运算对象仅仅是少量的8位数据的加、减

以及逻辑操作,则两者的效率会比较接近;但如果运算对象比较复杂(通过指针的间接存取,多字节的乘除)或多字节数据甚至是浮点数

运算,两者的指令系统设计上优劣就会明显地体现出来。同样一个运算过程,甲款CPU执行需运行100条指令,已款CPU可能要执行200条指

令。



比较客观、公正的做法是,对同样的运算处理程序,比较两者的运行时间以及编译产生的代码。我的体会是,对比较复杂的数据处理,AVR

远胜过PIC16/PIC18。
machunshui
5楼-- · 2020-02-16 08:17
"如果单从运行速度而言,我觉得avr无疑远胜于pic。道理很简单,大部分PIC16/PIC18的最高晶振频率为20mhz,指令周期为4分频 --- 5mhz;而AVR最高晶振频率与指令周期均为20mhz。"



虽然楼上好像尝试做过C编译器,但是论据显然有错.



pic18最小性能10MIPs,最大16MIPS.



当然谈不上什么公正比较.



何况作为20MIPS以下的抵挡单片机,速度并非特别重要,抗干扰性能,外设模块的稳定性,易用性,都是非常重要的,这方面PIC显然很好.



何况pic包括pic16,pic18,pic24,dspic,pic32,在性能速度上都是逐步拉开差距的,显然microchip不可能把pic16做的和pic24,dspic一样的性能,如果嫌pic16,pic18性能不够,有的是别的型号满足要求.



具体到pic18指令系统,pic18的包含乘法器,快速中断影子寄存器,性能和avr差距应该说差不多吧?
machunshui
6楼-- · 2020-02-16 10:15
好像AVR也是最大速度20M,具体型号的速度也是不一的,也有8M,16M,



有些型号恐怕最大也就是16MIPS速度.



用最大速度来代替整个AVR系列,有点不太合适吧?

一周热门 更多>