本帖最后由 wugx 于 2015-2-9 17:34 编辑
“#define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)”这是DSP2802x_Examples.h头文件里定义的啊;下面是主程序:
void main(void)
{
InitSysCtrl(); // 系统初始化子程序,在DSP28_sysctrl.c中
DINT; //禁止所有中断
InitPieCtrl();
IER = 0x0000; //禁止CPU中断模块
IFR = 0x0000; //清除CPU中断标志
InitPieVectTable(); //初始化PIE中断矢量表
EALLOW; // This is needed to write to EALLOW protected registers
#ifdef TOFLASH
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
#endif
InitGpio();
//LCD_init(); //初始化LCD模块
//LCD_clear(); //清屏幕
//LCD_LOGO();
while(1)
{
GpioDataRegs.GPATOGGLE.bit.GPIO0=1; //电平翻转
DELAY_US(5000000L);
GpioDataRegs.GPATOGGLE.bit.GPIO1=1;
//delayms(2000);
//LCD_write_english_string(0,0,"I love you");
//LCD_write_chinese_string(8,4,12,6,0,0);
}
}
现象就是GPIO0一直没亮,GPIO1亮着,所以判断没跳过来,只是GPIO0从低电平翻转到了高电平,我把参数改大改小都一样,debug时停在interrupt void ILLEGAL_ISR(void) 的asm(" ESTOP0");处了,不知道什么地方非法了
|