TI公司的DSP处理器(本文以C2000的F28377D为例,其他处理器同样原理)的程序为了实现精确的定时,使用了一个用汇编编写的延时函数DSP28x_usDelay(),该函数在文件F2837xD_usDelay.asm中,程序的细节请阅读该文件。为了调用该函数,在F2837xD_Examples.h中做了如下声明:
extern void F28x_usDelay(long LoopCount);// DO NOT MODIFY THIS LINE.
#define DELAY_US(A) F28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)
利用宏定义的方式做了宏定义修正,来确保定时更加精确。
值得特别注意的是:
函数F28x_usDelay(long LoopCount)要想非常精确,必须在SARAM中运行,因此需要在运行时将其调入SARAM中。
下面谈谈如何实现将其调入SARAM中,需要做以下几个工作:
首先,在F2837xD_usDelay.asm中使

最低0.47元/天 解锁文章
1万+





