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

在CCS4中怎么查看一段程序的运行时间。芯片是25335

在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办

还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行

怎么能用软件写一段精确的延时函数呢?timer除外

大神们帮帮忙哈 

Forrest:

回复 Hanson He:

这里真热闹,我也灌一下水。:)

楼上说的是CCSV5,V4是不支持clock,也建议楼主用V5,建议按照2楼10#说的方法操作:

processors.wiki.ti.com/…/Download_CCS

DELAY_US(A)函数,如果按照要求放在RAM中,没有误差,具体的,DELAY_US(A)函数的源代码中有说明:

;There is a 9/10 cycle overhead and each loop

;takes five cycles. The LoopCount is given by

;the following formula:

;  DELAY_CPU_CYCLES = 9 + 5*LoopCount

; LoopCount = (DELAY_CPU_CYCLES – 9) / 5

; The macro DELAY_US(A) performs this calculation for you

 

#define DELAY_US(A)  DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 9.0L) / 5.0L)

在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办

还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行

怎么能用软件写一段精确的延时函数呢?timer除外

大神们帮帮忙哈 

Young Hu:

回复 Forrest:

刚刚我用CPU Timer0计数和Hanson提供的CCS的方法比对了一下,结果很接近,最多差4个cycle,可能是因为断点的位置问题。

不知道CCS这种方法的原理是什么。

在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办

还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行

怎么能用软件写一段精确的延时函数呢?timer除外

大神们帮帮忙哈 

STONE ISSAC:

感谢各位热情解答,获益匪浅。后来又试了一下DELAY_US(A)还是很准确的,可以直接用于单总线的延时

在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办

还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行

怎么能用软件写一段精确的延时函数呢?timer除外

大神们帮帮忙哈 

Troublemaker:

回复 STONE ISSAC:

CCSV5里面的 clock是不是不够精确?我编了一个程序:

for(frequency=1000;frequency<100000;frequency++)   ……………..1

{   Calculate_Control_Word(frequency);                          ……………….2

if(frequency==99999)                                      ………………3

{frequency=1000;}

}

我编译完下载到28335的RAM中去后,enable 了clock。发现 :

从程序1到程序2,要12个机器周期;

从程序2到程序3,要279个机器周期;

从程序3到程序1,要7个机器周期。

后来在这段程序没有变的情况下,又把.out文件重新下载到RAM中,发现

从程序1到程序2,要20个机器周期;

从程序2到程序3,要282个机器周期;

从程序3到程序1,要1200个机器周期。

请问这是怎么回事?这也相差太大了。每次重新加载后,有时正常,有时不正常。

个人觉得受到计算机内存指令调用方面的影响,运用timer,CCS程序里的CLOCK方式都不准确吧?唯独GPIO口输出切换程序是在DSP

内部执行,不牵涉到计算机内存环境改变的问题,应该最准确,但是不是很方便。因为我观察EPWM的couter计算时也发现

同样一个程序,每次执行完用的机器周期是不一样的。

用程序把timer里的值或EPWM里面couter的值显示出来,和用CCS里View的方式显示出来都应该一样。只要经过计算机读出来

显示在CCS里面,就可能会不准确。最起码会出现不能保证每次加载后查看的机器数不尽相同。

希望指正!

在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办

还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行

怎么能用软件写一段精确的延时函数呢?timer除外

大神们帮帮忙哈 

jing zhang7:

回复 Hanson He:

你好 ,我想问下 就是un->clock->enable, clock 清零 这个步骤具体是怎么操作的呀 我是新手 想测一下运行一个中断的时间

在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办

还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行

怎么能用软件写一段精确的延时函数呢?timer除外

大神们帮帮忙哈 

jing zhang7:

回复 Forrest:

DELAY_US(A);是要放到ram里才能测得一个中断的循环频率吗

赞(0)
未经允许不得转载:TI中文支持网 » 在CCS4中怎么查看一段程序的运行时间。芯片是25335
分享到: 更多 (0)