diff options
| author | liufeilong <[email protected]> | 2019-08-21 13:40:57 +0800 |
|---|---|---|
| committer | liufeilong <[email protected]> | 2019-08-21 13:40:57 +0800 |
| commit | 3ac168c9f61e26e181cee32a964d31b6f5807adb (patch) | |
| tree | 7ea838704c8abd8d1e9e2313c4947e7d8ac5d0e3 /bsp/ls1cdev/drivers | |
| parent | 418757fa6732fca3ba9d33ea6daad054f06612fd (diff) | |
更正gpio框架中断方式宏定义与1c底层中断方式宏定义不一致问题
Diffstat (limited to 'bsp/ls1cdev/drivers')
| -rw-r--r-- | bsp/ls1cdev/drivers/drv_gpio.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/bsp/ls1cdev/drivers/drv_gpio.c b/bsp/ls1cdev/drivers/drv_gpio.c index 5afdae5caa..2203db7775 100644 --- a/bsp/ls1cdev/drivers/drv_gpio.c +++ b/bsp/ls1cdev/drivers/drv_gpio.c @@ -73,8 +73,24 @@ rt_err_t ls1c_pin_attach_irq(struct rt_device *device, rt_int32_t pin, { unsigned int gpio = pin; char irq_name[10]; - - gpio_set_irq_type(gpio, mode); + rt_uint32_t type; + switch (mode) + { + case PIN_IRQ_MODE_RISING: + type=IRQ_TYPE_EDGE_RISING; + break; + case PIN_IRQ_MODE_FALLING: + type=IRQ_TYPE_EDGE_FALLING; + break; + case PIN_IRQ_MODE_HIGH_LEVEL: + type=IRQ_TYPE_LEVEL_HIGH; + break; + case PIN_IRQ_MODE_LOW_LEVEL: + type=IRQ_TYPE_LEVEL_LOW; + break; + } + gpio_set_irq_type(gpio, type); + rt_sprintf(irq_name, "PIN_%d", gpio); rt_hw_interrupt_install(LS1C_GPIO_TO_IRQ(gpio), (rt_isr_handler_t)hdr, args, irq_name); |
