在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办
还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行
怎么能用软件写一段精确的延时函数呢?timer除外
大神们帮帮忙哈
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在网上找到clock enable的方法,我试了 结果左下角没有出现时钟图标。难道这个功能不支持28335?咋办
还有 例程中DELAY_US(A)函数误差有多大呢?感觉不是很准,用到单总线器件上不行
怎么能用软件写一段精确的延时函数呢?timer除外
大神们帮帮忙哈
这里真热闹,我也灌一下水。:)
楼上说的是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)
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里面,就可能会不准确。最起码会出现不能保证每次加载后查看的机器数不尽相同。
希望指正!
我也是用cpu_timer0周期数来看,直接给出代码实现:
Uint16 BENCH_REGH;
Uint16 BENCH_REGL;
void BENCH_Start()
{
BENCH_REGH = 0;
BENCH_REGL = 0;
ReloadCpuTimer0();
StartCpuTimer0();
}
void BENCH_Stop()
{
Uint32 cycles = 0;
StopCpuTimer0();
cycles = 0xFFFFFFFF - ReadCpuTimer0Counter();
BENCH_REGH = HIWORD(cycles);
BENCH_REGL = LOWORD(cycles);
}
我用以上的代码跟踪我的ISR中算法执行时间。