各位大神好,我又来发帖了,依然是挑TI的错 我用ccs自带的时钟,观察DELAY_US(100),使用了15005个时钟周期。 但我如果修改: DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 9.0L) / 5.0L),将9.0L改成14.0L, 即修改后: DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 14.0L) / 5.0L) 那么DELAY_US(100),使用了15000个时钟周期。这似乎才是正确的, 这是为什么?TI自带的这个延迟修正函数错了吗
Eric Ma:
这个5主要是因为函数调用跳转到_DSP28x_usDelay时间需要增加5个clk,我觉得-14也是可以的。
ERIC
各位大神好,我又来发帖了,依然是挑TI的错 我用ccs自带的时钟,观察DELAY_US(100),使用了15005个时钟周期。 但我如果修改: DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 9.0L) / 5.0L),将9.0L改成14.0L, 即修改后: DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) – 14.0L) / 5.0L) 那么DELAY_US(100),使用了15000个时钟周期。这似乎才是正确的, 这是为什么?TI自带的这个延迟修正函数错了吗
Tao Tang3:
回复 Eric Ma:
那么从实际意义上说,到底哪个更精确呢?我认为-14更精确吧