1.想让PG12引脚配置成上升沿触发中断,按如下程序配置,PG12引脚并不能在在上升沿到来时产生中断,是不是配置问题,如果是,应该怎样配置?
2.把红色字体的配置去掉后:当PG12没接上拉电阻时,PG12为高时产生中断,并且一直持续到PG12为低,才不产生中断;当接上拉电阻时,中断在PG12的下降沿产生中断。不知道这是为什么??????????????
void InitPorts(void)
{
*pPORTG_FER &= ~PG12; //配置PG12 管脚为IO 功能
*pPORTGIO_DIR &= ~PG12; //配PG12 管脚为输入
*pPORTGIO_INEN |= PG12; //配置PG12 管脚输入使能
*pPORTGIO_EDGE |= PG12; //配置为沿触发模式
*pPORTGIO_POLAR &= ~PG12; //配置为上升沿触发
*pPORTGIO_MASKA_SET |= PG12; //中断源采用Port F interrupt A
}
EX_INTERRUPT_HANDLER(FlagA_ISR1) //设置中断函数标志为FlagA_ISR
{
if((*pPORTGIO&PG12) == PG12)
z=1;
}
void Init_Interrupts1(void)
{
*pSIC_IAR5 = 0xfffffff5; //中断源PG12 中断等级IVG12,对应的值为5
register_handler(ik_ivg12, FlagA_ISR1);
*pSIC_IMASK1 = 0x00000100; //使能中断, 中断源PG 在SIC_IMASK1上对应的是bit8位,即第9个
}