TI中文支持网
TI专业的中文技术问题搜集分享网站

C语言加法运行时间长

各位老师,大神好

         小弟遇到一个应用,使用的芯片为28027,采用内部时钟,60MHZ,现在需要在中断中求一个数组后面几个数字的平均值,程序如下:

#pragma CODE_SECTION(FilterBus, "ramfuncs");

void FilterBus(void)
{
    Uint16 k;
    long vbustemp;
    vbustemp=0;
    for(k=2;k<10;k++)
        vbustemp=vbustemp+vBusSensedBuff[k];
    vBus=vbustemp>>3;
}
在主程序中,已经进行代码从flash搬移到RAM中了,中断程序也已经拷贝到RAM区了,可是不知道为什么执行这几条加法指令,通过在该函数的调用前和调用后修改某一个GPIO引脚的方式,通过示波器观察,该段程序的运行时间接近3.6us,感觉仅仅简单的32位数相加,和一次移位,怎么花费这么长的时间呢?谢谢

Green Deng:你好,个人认为,用示波器观测的结果,时间上会加上GPIO的动作时间。推荐你可以参考一下这个帖子的内容:e2echina.ti.com/…/137378

各位老师,大神好

         小弟遇到一个应用,使用的芯片为28027,采用内部时钟,60MHZ,现在需要在中断中求一个数组后面几个数字的平均值,程序如下:

#pragma CODE_SECTION(FilterBus, "ramfuncs");

void FilterBus(void)
{
    Uint16 k;
    long vbustemp;
    vbustemp=0;
    for(k=2;k<10;k++)
        vbustemp=vbustemp+vBusSensedBuff[k];
    vBus=vbustemp>>3;
}
在主程序中,已经进行代码从flash搬移到RAM中了,中断程序也已经拷贝到RAM区了,可是不知道为什么执行这几条加法指令,通过在该函数的调用前和调用后修改某一个GPIO引脚的方式,通过示波器观察,该段程序的运行时间接近3.6us,感觉仅仅简单的32位数相加,和一次移位,怎么花费这么长的时间呢?谢谢

user5074486:

回复 Green Deng:

你好,按照贴子上的方法,ccs在线调试时间还是3us左右,有点迷茫

各位老师,大神好

         小弟遇到一个应用,使用的芯片为28027,采用内部时钟,60MHZ,现在需要在中断中求一个数组后面几个数字的平均值,程序如下:

#pragma CODE_SECTION(FilterBus, "ramfuncs");

void FilterBus(void)
{
    Uint16 k;
    long vbustemp;
    vbustemp=0;
    for(k=2;k<10;k++)
        vbustemp=vbustemp+vBusSensedBuff[k];
    vBus=vbustemp>>3;
}
在主程序中,已经进行代码从flash搬移到RAM中了,中断程序也已经拷贝到RAM区了,可是不知道为什么执行这几条加法指令,通过在该函数的调用前和调用后修改某一个GPIO引脚的方式,通过示波器观察,该段程序的运行时间接近3.6us,感觉仅仅简单的32位数相加,和一次移位,怎么花费这么长的时间呢?谢谢

mangui zhang:使用CCS工具统计出用了多少个clk这样计算出来的时候是最准确的

赞(0)
未经允许不得转载:TI中文支持网 » C语言加法运行时间长
分享到: 更多 (0)