Index: firmware/App/Drivers/GLXferPump.c =================================================================== diff -u -r3074682de43568567f244e2663d1f75b7e6ea85e -ra4774f170562e33a48238cb3e3137bdd06ac374a --- firmware/App/Drivers/GLXferPump.c (.../GLXferPump.c) (revision 3074682de43568567f244e2663d1f75b7e6ea85e) +++ firmware/App/Drivers/GLXferPump.c (.../GLXferPump.c) (revision a4774f170562e33a48238cb3e3137bdd06ac374a) @@ -15,6 +15,8 @@ * ***************************************************************************/ +#include + #include "AlarmMgmtTD.h" #include "FpgaTD.h" #include "GLXferPump.h" @@ -29,7 +31,6 @@ // ********** private definitions ********** #define AIR_PUMP_PWM_TIME 20 ///< Time (in 10ns increments) per PWM register count for the air pump = 20 kHz. -#define AIR_PUMP_MAX_PWM 255 ///< Air pump maximum PWM. // ********** private data ********** @@ -104,20 +105,20 @@ /*********************************************************************//** * @brief * The PercentageToScalar function convert percentage 0-100% duty - * cycle to 0-255 scalar value. + * cycle to 0-250 scalar value. * @details \b Inputs: none * @details \b Outputs: none - * @param percentage Power level for air pump (0...2=off, 3-100.0 for ON). - * @return U08 8-bit PWM value (0-255) + * @param percentage Power level for air pump (0=off, 1-100.0 for ON). + * @return U08 8-bit PWM value (0-250) *************************************************************************/ static U08 convertPercentageToScalar( F32 percentage ) { F32 power; // Clamp input to 0-100% power = RANGE( percentage, AIR_PUMP_DUTY_CYCLE_MIN, AIR_PUMP_DUTY_CYCLE_MAX ); - // Calculate 0-255 value (255 * power / 100) - return (U08)( ( ( power * AIR_PUMP_MAX_PWM ) / FRACTION_TO_PERCENT_FACTOR ) ); + // Calculate 0-250 value (250 * power / 100) + return (U08)( ceilf ( ( ( power * (F32)AIR_PUMP_MAX_PWM ) / FRACTION_TO_PERCENT_FACTOR ) ) ); }