aboutsummaryrefslogtreecommitdiffstats
path: root/src/stm32f1
diff options
context:
space:
mode:
Diffstat (limited to 'src/stm32f1')
-rw-r--r--src/stm32f1/gpio.c10
-rw-r--r--src/stm32f1/gpio.h1
2 files changed, 10 insertions, 1 deletions
diff --git a/src/stm32f1/gpio.c b/src/stm32f1/gpio.c
index 74bb72af..f988700a 100644
--- a/src/stm32f1/gpio.c
+++ b/src/stm32f1/gpio.c
@@ -72,12 +72,20 @@ fail:
}
void
-gpio_out_toggle(struct gpio_out g)
+gpio_out_toggle_noirq(struct gpio_out g)
{
LL_GPIO_TogglePin(g.regs, g.bit);
}
void
+gpio_out_toggle(struct gpio_out g)
+{
+ irqstatus_t flag = irq_save();
+ gpio_out_toggle_noirq(g);
+ irq_restore(flag);
+}
+
+void
gpio_out_write(struct gpio_out g, uint8_t val)
{
if (val)
diff --git a/src/stm32f1/gpio.h b/src/stm32f1/gpio.h
index b5a8621e..52e944f1 100644
--- a/src/stm32f1/gpio.h
+++ b/src/stm32f1/gpio.h
@@ -11,6 +11,7 @@ struct gpio_out {
uint32_t bit;
};
struct gpio_out gpio_out_setup(uint8_t pin, uint8_t val);
+void gpio_out_toggle_noirq(struct gpio_out g);
void gpio_out_toggle(struct gpio_out g);
void gpio_out_write(struct gpio_out g, uint8_t val);