stmhal: Toggle LED using ODR ^= pin_mask.
This commit is contained in:
parent
2547928148
commit
bcb3ab451b
13
stmhal/led.c
13
stmhal/led.c
@ -148,18 +148,9 @@ void led_toggle(pyb_led_t led) {
|
||||
}
|
||||
#endif
|
||||
|
||||
// toggle the output data register to toggle the LED state
|
||||
const pin_obj_t *led_pin = pyb_led_obj[led - 1].led_pin;
|
||||
GPIO_TypeDef *gpio = led_pin->gpio;
|
||||
|
||||
// We don't know if we're turning the LED on or off, but we don't really
|
||||
// care. Just invert the state.
|
||||
if (gpio->ODR & led_pin->pin_mask) {
|
||||
// pin is high, make it low
|
||||
gpio->BSRRH = led_pin->pin_mask;
|
||||
} else {
|
||||
// pin is low, make it high
|
||||
gpio->BSRRL = led_pin->pin_mask;
|
||||
}
|
||||
led_pin->gpio->ODR ^= led_pin->pin_mask;
|
||||
}
|
||||
|
||||
int led_get_intensity(pyb_led_t led) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user