diff options
Diffstat (limited to 'src/stm32f1')
-rw-r--r-- | src/stm32f1/gpio.c | 10 | ||||
-rw-r--r-- | src/stm32f1/gpio.h | 1 |
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); |