|
我用的普通IO口配置的:行、场和像素
void SetupIntc(void)
{GPIOIntTypeSet(SOC_GPIO_0_REGS, 85, GPIO_INT_TYPE_RISEDGE);
// 配置 GPIO5[6] 为上升沿触发
GPIOIntTypeSet(SOC_GPIO_0_REGS, 11, GPIO_INT_TYPE_RISEDGE);
// 配置 GPIO0[10] 为上升沿触发
GPIOIntTypeSet(SOC_GPIO_0_REGS, 64, GPIO_INT_TYPE_RISEDGE);
// 配置 GPIO3[15] 为上升沿触发
GPIOBankIntEnable(SOC_GPIO_0_REGS, 3);
GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);
GPIOBankIntEnable(SOC_GPIO_0_REGS, 5);
// 注册中断服务函数
IntRegister(C674X_MASK_INT15, FRAME_INT);
// // 映射中断到 DSP 可屏蔽中断
IntEventMap(C674X_MASK_INT15, SYS_INT_GPIO_B5INT);
//
// // 使能 DSP 可屏蔽中断
IntEnable(C674X_MASK_INT15);
// 注册中断服务函数
IntRegister(C674X_MASK_INT14, LINE_INT);
// // 映射中断到 DSP 可屏蔽中断
IntEventMap(C674X_MASK_INT14, SYS_INT_GPIO_B3INT);
//
// // 使能 DSP 可屏蔽中断
IntEnable(C674X_MASK_INT14);
// 注册中断服务函数
IntRegister(C674X_MASK_INT7, PIXCLK_INT);
// // 映射中断到 DSP 可屏蔽中断
IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B0INT);
//
// // 使能 DSP 可屏蔽中断
IntEnable(C674X_MASK_INT7);}
其中FRAME_INT(场),PIXCLK_INT(像素),LINE_INT(行),为中断服务函数。
void FRAME_INT(void)
{
// 禁用 GPIO BANK 5 中断
GPIOBankIntDisable(SOC_GPIO_0_REGS, 5);
// 清除 GPIO BANK 5 中断状态
IntEventClear(SYS_INT_GPIO_B5INT);
if(GPIOPinIntStatus(SOC_GPIO_0_REGS, 85) == GPIO_INT_PEND)
{
Flag0=1;
// 清除 GPIO5[4] 中断状态
GPIOPinIntClear(SOC_GPIO_0_REGS, 85);
// 清除 GPIO5[6] 中断状态
}
GPIOBankIntEnable(SOC_GPIO_0_REGS, 5);
}
来一个上升沿,我就让Flag0=1,不知道哪里有问题
|
|