stmhal: Toggle LED using ODR ^= pin_mask.

This commit is contained in:
Damien George 2014-06-17 19:57:17 +01:00
parent 2547928148
commit bcb3ab451b
1 changed files with 2 additions and 11 deletions

View File

@ -148,18 +148,9 @@ void led_toggle(pyb_led_t led) {
} }
#endif #endif
// toggle the output data register to toggle the LED state
const pin_obj_t *led_pin = pyb_led_obj[led - 1].led_pin; const pin_obj_t *led_pin = pyb_led_obj[led - 1].led_pin;
GPIO_TypeDef *gpio = led_pin->gpio; led_pin->gpio->ODR ^= led_pin->pin_mask;
// 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;
}
} }
int led_get_intensity(pyb_led_t led) { int led_get_intensity(pyb_led_t led) {