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

使用TI函数库中的DELAY_US();问题

当程序运行DELAY_US();函数时就跳到了 No source available for "0x8004" 就没反应了。调用 这个延时函数时需要包含哪些文件,或哪里需要设置啊。

我是初学者,希望专家们多多指点啊!

下面将整个主程序复制上来

#include "DSP28x_Project.h" // DSP28x Headerfile

#include "f2802x_common/include/gpio.h"
#include "f2802x_common/include/clk.h"
#include "f2802x_common/include/wdog.h"

GPIO_Handle myGpio;

// main.c
void main(void)
{

myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));

// Configure GPIO 0-3 as outputs
GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_1, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_2, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_3, GPIO_0_Mode_GeneralPurpose);

GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_1, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_2, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_3, GPIO_Direction_Output);

while(1)
{
GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setLow(myGpio, GPIO_Number_3);
// DELAY_US(500000);

GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setLow(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);
// DELAY_US(500000);

GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setLow(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);
// DELAY_US(500000);

GPIO_setLow(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);
// DELAY_US(5000000);
}

}

Johnson Chen1:

楼主程序是跑在FLASH 中还是RAM中?如果是跑在FLASH中的话,要调用以下函数,将DELAY_US();函数搬到RAM里运行,否则PC跳到RAM里去执行DELAY_US()时,由于你没有把DELAY_US()搬到RAM里,因此相当于PC跑飞掉(现象和你描述的一样)。

// Copy time critical code and Flash setup code to RAM

// This includes the following ISR functions: EPwm1_timer_isr(), EPwm2_timer_isr()

// EPwm3_timer_isr and and InitFlash();

// The  RamfuncsLoadStart, RamfuncsLoadEnd, and RamfuncsRunStart

// symbols are created by the linker. Refer to the F2808.cmd file.

  MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);

// Call Flash Initialization to setup flash waitstates

// This function must reside in RAM

  InitFlash();

当程序运行DELAY_US();函数时就跳到了 No source available for "0x8004" 就没反应了。调用 这个延时函数时需要包含哪些文件,或哪里需要设置啊。

我是初学者,希望专家们多多指点啊!

下面将整个主程序复制上来

#include "DSP28x_Project.h" // DSP28x Headerfile

#include "f2802x_common/include/gpio.h"
#include "f2802x_common/include/clk.h"
#include "f2802x_common/include/wdog.h"

GPIO_Handle myGpio;

// main.c
void main(void)
{

myGpio = GPIO_init((void *)GPIO_BASE_ADDR, sizeof(GPIO_Obj));

// Configure GPIO 0-3 as outputs
GPIO_setMode(myGpio, GPIO_Number_0, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_1, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_2, GPIO_0_Mode_GeneralPurpose);
GPIO_setMode(myGpio, GPIO_Number_3, GPIO_0_Mode_GeneralPurpose);

GPIO_setDirection(myGpio, GPIO_Number_0, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_1, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_2, GPIO_Direction_Output);
GPIO_setDirection(myGpio, GPIO_Number_3, GPIO_Direction_Output);

while(1)
{
GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setLow(myGpio, GPIO_Number_3);
// DELAY_US(500000);

GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setLow(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);
// DELAY_US(500000);

GPIO_setHigh(myGpio, GPIO_Number_0);
GPIO_setLow(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);
// DELAY_US(500000);

GPIO_setLow(myGpio, GPIO_Number_0);
GPIO_setHigh(myGpio, GPIO_Number_1);
GPIO_setHigh(myGpio, GPIO_Number_2);
GPIO_setHigh(myGpio, GPIO_Number_3);
// DELAY_US(5000000);
}

}

机动哥:

谢谢你的回答

我把你的复制到我的主程序中报错了

将你给的二个函数在初始化后面

还请教一个问题,我用CCS5使用F28027  请问怎么样将程序烧到flash或RAM里面运行啊?????、

我用的是TI例子中f2802x_headers\cmd文件夹中CMD文件,建工程时出现的CMD那个文件会报错

能不能给个详细点的资料啊!!!!

赞(0)
未经允许不得转载:TI中文支持网 » 使用TI函数库中的DELAY_US();问题
分享到: 更多 (0)