The leds API did not work in some cases. E.g. with the following sequence: leds_off(LEDS_ALL); leds_toggle(LEDS_GREEN); leds_off(LEDS_ALL); the green LED was remaining on after the last call. This was caused by the toggle feature made synonymous with the invert feature, although it is unrelated. leds_toggle() is indeed supposed to toggle an LED, while leds_invert() is supposed to change the active level of an LED. However, all users of leds_invert() actually meant leds_toggle(), and the invert feature does not make sense in this module because it is not handy due to successive calls to leds_invert() changing the intended behavior, and hardware active levels should be managed in leds_arch_set() (e.g. by XORing the passed value with a hardware-specific constant before setting the output levels of the pins). Consequently, this change: - removes the leds_invert() function, - makes leds_toggle() behave as expected relatively to leds_off() / leds_on(), - sanitizes the code in the leds module. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> |
||
---|---|---|
.. | ||
dev | ||
f1xxx | ||
f2xxx | ||
f5xxx | ||
button.c | ||
cc2420-arch-sfd.c | ||
cc2420-arch-sfd.h | ||
cc2420-arch.c | ||
cc2520-arch-sfd.c | ||
cc2520-arch-sfd.h | ||
cc2520-arch.c | ||
flash.c | ||
isr_compat.h | ||
leds-arch.c | ||
loader-arch.c | ||
lpm.c | ||
Makefile.msp430 | ||
minileds.c | ||
msp430def.h | ||
mtarch.c | ||
mtarch.h | ||
rom.c | ||
rtimer-arch.h | ||
slip_uart0.c | ||
slip_uart1.c | ||
uip-ipchksum.c | ||
watchdog.c |