X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Flpc%2Fao_exti_lpc.c;h=12016072f7037e625c5006708fc4c39f507ee88f;hp=ce98b4ad3e0dae3c771083dd2fc214009b183112;hb=54dd2a6e3a05b940d9daebb3d73f6876c182b3e7;hpb=098fd43a740ee2a782f82b6b71965b60cdba2d62 diff --git a/src/lpc/ao_exti_lpc.c b/src/lpc/ao_exti_lpc.c index ce98b4ad..12016072 100644 --- a/src/lpc/ao_exti_lpc.c +++ b/src/lpc/ao_exti_lpc.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -69,7 +70,7 @@ _ao_exti_set_enable(uint8_t pint) lpc_gpio_pin.sienr = mask; else lpc_gpio_pin.cienr = mask; - + if (mode & AO_EXTI_MODE_FALLING) lpc_gpio_pin.sienf = mask; else @@ -91,11 +92,14 @@ ao_exti_setup (uint8_t port, uint8_t pin, uint8_t mode, void (*callback)(void)) if (pint == LPC_NUM_PINT) ao_panic(AO_PANIC_EXTI); + if (!(mode & AO_EXTI_PIN_NOCONFIGURE)) + ao_enable_input(port, pin, mode); + ao_arch_block_interrupts(); mask = (1 << pint); ao_pint_inuse |= mask; ao_pint_enabled &= ~mask; - + ao_pint_map[id] = pint; ao_exti_callback[pint] = callback; @@ -136,7 +140,7 @@ ao_exti_set_mode(uint8_t port, uint8_t pin, uint8_t mode) } void -ao_exti_set_callback(uint8_t port, uint8_t pin, void (*callback)()) { +ao_exti_set_callback(uint8_t port, uint8_t pin, void (*callback)(void)) { uint8_t id = pin_id(port,pin); uint8_t pint = ao_pint_map[id];