智能车制作

标题: 32位单片机各种整型数据运算测试结果 [打印本页]

作者: 问乐寻音    时间: 2013-6-7 08:51
标题: 32位单片机各种整型数据运算测试结果
测试了一下32位单片机对于8位、16位及32位整型数据的运算速度,测试单片机为coldfire MCF52255 @48MHz。希望对大家有用。

[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
[tr] [/tr]
测试语句
时间
测试条件
备注
for(i=0;i<200;i++)
    {result=i+1;}
37.6us主频48M,
    i为uchar型
result[]的数据类型没有影响
for(i=0;i<200;i++)
    {result=i-1;}
42us
 
for(i=0;i<200;i++)
    {result=i+1;}
23.2us主频48M,
    i为uint/ulong型
result[]的数据类型没有影响
for(i=0;i<200;i++)
    {result=i-1;}
27.2us
 
测试语句
时间
测试条件
备注
for(i=0;i<200;i++)
        {;}
18.8us
主频48M
    i为uchar型
for(i=0;i<200;i++)
        {;}
10.4us
主频48M
    i为uint/ulong型
测试语句
时间
测试条件
备注
for(i=200;i>0;i--)
        {;}
14.8us
主频48M
    i为uchar型
for(i=200;i>0;i--)
        {;}
8.4us
主频48M
    i为uint/ulong型
测试语句
时间
测试条件
备注
for(i=200;i>0;i--)
    {result=j*i;}
40us
主频48M
    result为ulong型
i,j均为uchar
for(i=200;i>0;i--)
    {result=j*i;}
29us
主频48M
    result为ulong型
i、j至少一个uint/ulong
for(i=200;i>0;i--)
    {result=i/j;}
58us
主频48M
    result为ulong型
i,j均为uchar
for(i=200;i>0;i--)
    {result=i/j;}
49us
主频48M
    result为ulong型
i、j至少一个uint/ulong
[attach]46629[/attach]



作者: 问乐寻音    时间: 2013-6-7 08:52
格式貌似乱了,大家可以下载附件。
作者: 249176669    时间: 2013-6-7 09:09
问乐寻音 发表于 2013-6-7 08:52
格式貌似乱了,大家可以下载附件。

为什么uchar类型的运算反而比uint类型更耗费时间?为什么呢?K60是不是在这个范涛内?我是不是该把我的变量尽量改成uint和int类型?

作者: dapan945    时间: 2013-6-7 09:38
是的,32位单片机运算32位是最快的
作者: glacier0    时间: 2013-6-7 09:44
不错
作者: 青龙00    时间: 2013-6-7 10:39
一直以为uchar运行时时间比uint运行时间段呢
作者: kunder    时间: 2013-6-7 11:16
那16位单片机是不是运算16位最快的
作者: sdlibin007@qq.c    时间: 2013-6-7 15:03
这个真不知道,我们基本上就没测过
作者: syjh7370628    时间: 2013-6-7 18:05
注重细节!
作者: 问乐寻音    时间: 2013-6-7 19:35
249176669 发表于 2013-6-7 09:09
为什么uchar类型的运算反而比uint类型更耗费时间?为什么呢?K60是不是在这个范涛内?我是不是该把我的变 ...

测试的结果仅供大家参考,只是给大家提供一个思路,其他单片机大家可以自测。





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2