我是用TMS320C6416T的
开发板,用外部中断6作为中断源,在程序配置好相关寄存器,并将程序下载到开发板并运行,在外部中断6引脚未接信号,此时用示波器观察到外部中断6引脚的信号一直是3.3V,通过设置断点观察到程序可以一直进入中断,观察寄存器看到外部中断6的IFR的一直是有效的;另外通过在程序中设置EXTPOL寄存器,编译器提示语句无效,下面是我的程序,求各位大神指教,不甚感激啊!
sta
tic GPIO_Config myGpioCfg1=[
0x00000000, //GPGC: 直通模式下向CPU发送中断
0x000000F0, //GPEN: GP4、5、6、7设为输入输出状态
// 0x00000000, //GPDIR: GP0 - GP15 设为输入
0x00000030, //GPDIR: GP4 - GP5 设为输出
0x00000000, //GPVAL: GP0 - GP15 值锁存为0
// 0x00000030, //GPVAL: GP4 - GP5 值锁存为1
0x000000C0, //GPHM: GP4 - GP7 允许接受中断
0x000000C0, //GPLM:GP4 - GP7 允许接受中断
// 0x00000000 //GPPOL: 上升沿触发
0x0000000F //GPPOL: 下降沿触发
];
void main(void)
[
GPIO_Handle myhGpio;
//Initialise CSL
CSL_init();
//配置GPIO
myhGpio = GPIO_open(GPIO_DEV0,GPIO_OPEN_RESET);
GPIO_config(myhGpio,&myGpioCfg1);
// IRQ_EXTPOL_XIP_OF(0xF);
*( volatile unsigned int* )EXTPOL=0x0000000F;
//中断设置
set_intrupt();
for(;;)[
]
]
////////////////////////////////////////////////////////////////////////////
//中断寄存器配置函数
////////////////////////////////////////////////////////////////////////////
void set_intrupt(void)[
IRQ_setVecs(vectors);
*( volatile unsigned int* )EXTPOL=0x0000000F;
IRQ_resetAll();
IRQ_map(IRQ_EVT_EXTINT6,6);
IRQ_map(IRQ_EVT_EDMAINT,8);
IRQ_nmiEnable();
IRQ_reset(IRQ_EVT_EXTINT6);
IRQ_enable(IRQ_EVT_EXTINT6);
IRQ_enable(IRQ_EVT_EDMAINT);
//允许通道6中断;
EDMA_intEnable(6);
IRQ_globalEnable();
]