在网上找到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里才能测得一个中断的循环频率吗