[tuxdroid-svn] r938 - firmware/tuxcore/trunk
Status: Beta
Brought to you by:
ks156
From: jaguarondi <c2m...@c2...> - 2008-03-17 05:17:01
|
Author: jaguarondi Date: 2008-03-17 06:16:51 +0100 (Mon, 17 Mar 2008) New Revision: 938 Modified: firmware/tuxcore/trunk/led.c firmware/tuxcore/trunk/led.h firmware/tuxcore/trunk/parser.c firmware/tuxcore/trunk/standalone.c Log: * IR feedback is now only toggling the LEDs if they're idle. Modified: firmware/tuxcore/trunk/led.c =================================================================== --- firmware/tuxcore/trunk/led.c 2008-03-17 04:16:52 UTC (rev 937) +++ firmware/tuxcore/trunk/led.c 2008-03-17 05:16:51 UTC (rev 938) @@ -165,7 +165,7 @@ If 'cnt' or 'pulse_width' are set to 0, the register is not updated so the old value is kept. 'cnt' can be set to 255 to trigger an infinite pulsing effect. -*/ + */ void led_pulse(leds_t leds, uint8_t const cnt, uint8_t const pulse_width) { /* XXX we should really find a way to optimize this loop for the 2 leds. @@ -200,6 +200,25 @@ } /** + \brief Simple function to toggle both leds only if they're not pulsing or + fading already. + \ingroup led + \param cnt Number of pulses. 0 is ignored, 255 (0xFF) means infinite. + \param pulse_width Pulse width. 0 is ignored. + */ +void leds_toggle(uint8_t const cnt, uint8_t const pulse_width) +{ + /* Only toggle from the standalone if no computer commands are already + * driving the LEDs. */ + if (!(left_led.status.fading || left_led.status.pulsing \ + || right_led.status.fading || right_led.status.pulsing)) + { + led_set_fade_speed(LED_BOTH, 1, 10); + led_pulse(LED_BOTH, cnt, pulse_width); + } +} + +/** \brief Set the intensity boundaries for the pulse command. \ingroup led \param leds Which LEDs are affected by the command Modified: firmware/tuxcore/trunk/led.h =================================================================== --- firmware/tuxcore/trunk/led.h 2008-03-17 04:16:52 UTC (rev 937) +++ firmware/tuxcore/trunk/led.h 2008-03-17 05:16:51 UTC (rev 938) @@ -81,8 +81,8 @@ void led_set_fade_speed(leds_t leds, uint8_t const delay, uint8_t const step); void led_set_intensity(leds_t leds, uint8_t const intensity); void led_pulse_range(leds_t leds, uint8_t const max, uint8_t const min); -void pulse_led(led_t *const led, uint8_t const cnt, uint8_t const pulse_width); void led_pulse(leds_t led, uint8_t const cnt, uint8_t const pulse_width); +void leds_toggle(uint8_t const cnt, uint8_t const pulse_width); void led_control(bool mask); #endif /* _LED_H_ */ Modified: firmware/tuxcore/trunk/parser.c =================================================================== --- firmware/tuxcore/trunk/parser.c 2008-03-17 04:16:52 UTC (rev 937) +++ firmware/tuxcore/trunk/parser.c 2008-03-17 05:16:51 UTC (rev 938) @@ -164,14 +164,7 @@ } else if (command[0] == LED_TOGGLE_CMD) { - /* Only toggle from the standalone if no computer commands are already - * driving the LEDs. */ - if (!(left_led.status.fading || left_led.status.pulsing \ - || right_led.status.fading || right_led.status.pulsing)) - { - led_set_fade_speed(LED_BOTH, 1, 10); - led_pulse(LED_BOTH, command[1], command[2]); - } + leds_toggle(command[1], command[2]); } /* Moves */ else if (command[0] == BLINK_EYES_CMD) Modified: firmware/tuxcore/trunk/standalone.c =================================================================== --- firmware/tuxcore/trunk/standalone.c 2008-03-17 04:16:52 UTC (rev 937) +++ firmware/tuxcore/trunk/standalone.c 2008-03-17 05:16:51 UTC (rev 938) @@ -213,7 +213,7 @@ /* IR feedback signal */ if (tux_config.ir_feedback) - led_pulse(LED_BOTH, 2, 4); + leds_toggle(2, 4); /* ALT KEYS */ if (alt_mode) |