From 3bef8767f966eaa960a3dfc5609a3952f4b00627 Mon Sep 17 00:00:00 2001 From: Uwe Hermann Date: Sat, 18 Jul 2009 17:41:31 +0200 Subject: [PATCH] Add gpio_get() API function. --- include/libopenstm32/gpio.h | 1 + lib/gpio.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/libopenstm32/gpio.h b/include/libopenstm32/gpio.h index 89018b9a..f808c93b 100644 --- a/include/libopenstm32/gpio.h +++ b/include/libopenstm32/gpio.h @@ -140,6 +140,7 @@ void gpio_set_mode(u32 gpioport, u8 mode, u8 cnf, u16 gpios); void gpio_set(u32 gpioport, u16 gpios); void gpio_clear(u32 gpioport, u16 gpios); +u16 gpio_get(u32 gpioport, u16 gpios); void gpio_toggle(u32 gpioport, u16 gpios); u16 gpio_port_read(u32 gpioport); void gpio_port_write(u32 gpioport, u16 data); diff --git a/lib/gpio.c b/lib/gpio.c index e9f90ca5..2ade8424 100644 --- a/lib/gpio.c +++ b/lib/gpio.c @@ -25,6 +25,7 @@ * GPIO_CNF_OUTPUT_PUSHPULL, GPIO12); * gpio_set(GPIOB, GPIO4); * gpio_clear(GPIOG, GPIO2 | GPIO9); + * gpio_get(GPIOC, GPIO1); * gpio_toggle(GPIOA, GPIO7); * reg16 = gpio_port_read(GPIOD); * gpio_port_write(GPIOF, 0xc8fe); @@ -66,6 +67,11 @@ void gpio_clear(u32 gpioport, u16 gpios) GPIO_BRR(gpioport) = gpios; } +u16 gpio_get(u32 gpioport, u16 gpios) +{ + return gpio_port_read(gpioport) & gpios; +} + /* TODO: Should work for multiple GPIOs? */ void gpio_toggle(u32 gpioport, u16 gpio) {