imx515 wince6.0下配置GPIO中断

2 篇文章 0 订阅

最近在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);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值