现在的位置: 首页 > 综合 > 正文

imx515 wince6.0下配置GPIO中断

2018年04月22日 ⁄ 综合 ⁄ 共 1063字 ⁄ 字号 评论关闭

最近在wince平台下使用到了外部中断功能,做个记录,使用的是飞思卡尔的IMX515芯片

1、配置管脚为GPIO管脚

      DDKIomuxSetPinMux(DDK_IOMUX_PIN_CSI1_D9, DDK_IOMUX_PIN_MUXMODE_ALT3, DDK_IOMUX_PIN_SION_REGULAR);

      DDKIomuxSetPadConfig(DDK_IOMUX_PAD_CSI1_D9, DDK_IOMUX_PAD_SLEW_SLOW, DDK_IOMUX_PAD_DRIVE_NORMAL,

                                             DDK_IOMUX_PAD_OPENDRAIN_DISABLE,  DDK_IOMUX_PAD_PULL_UP_100K, 

                                             DDK_IOMUX_PAD_HYSTERESIS_ENABLE, DDK_IOMUX_PAD_INMODE_CMOS, DDK_IOMUX_PAD_OUTVOLT_LOWVOLT);

2、配置管脚的中断触发模式,下降沿。

    DDKGpioSetConfig(DDK_GPIO_PORT3, 13,DDK_GPIO_DIR_IN,DDK_GPIO_INTR_FALL_EDGE);//DDK_GPIO_INTR_HIGH_LEV

    //先清除下中断

    DDKGpioClearIntrPin(DDK_GPIO_PORT3, 13);

3、创建中断对应的事件

      IntrEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

4、取中断号

     irq = IRQ_GPIO3_PIN13;

5、创建系统中断事件

     KernelIoControl(IOCTL_HAL_REQUEST_SYSINTR, &irq,
sizeof
(DWORD),&m_Intr, sizeof(DWORD), NULL)

 

InterruptInitialize(m_Max3100Intr, m_h3100IntrEvent, NULL, 0)

KernelIoControl(IOCTL_HAL_ENABLE_WAKE, &m_Max3100Intr,

                    sizeof(m_Max3100Intr), NULL, 0, NULL);

     ResetEvent(m_h3100IntrEvent);

 

抱歉!评论已关闭.