Index: firmware/App/Drivers/RotaryValve.c =================================================================== diff -u -r37294a71c0b3e3ca67ccb10b85536d124d3ef028 -r0e4a62ba24d906d9e5b33b293f93405b8c0391ce --- firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision 37294a71c0b3e3ca67ccb10b85536d124d3ef028) +++ firmware/App/Drivers/RotaryValve.c (.../RotaryValve.c) (revision 0e4a62ba24d906d9e5b33b293f93405b8c0391ce) @@ -138,8 +138,8 @@ { if ( valve < NUM_OF_VALVES ) { - U16 mag8 = ( ( mag % 8 ) < 4 ? ( mag >> 3 ) << 3 : ( ( mag >> 3 ) << 3 ) + 1 ); // round to multiple of 8 to maximize holding torque - S16 chgSteps = (S16)mag * ( MOTOR_DIR_REVERSE == dir ? -1 : 1 ); // convert to signed change in position - negative value indicates reverse direction + U16 mag8 = ( ( mag % 8 ) < 4 ? ( mag >> 3 ) << 3 : ( ( mag >> 3 ) << 3 ) + 8 ); // round to multiple of 8 to maximize holding torque + S16 chgSteps = (S16)mag8 * ( MOTOR_DIR_REVERSE == dir ? -1 : 1 ); // convert to signed change in position - negative value indicates reverse direction // log event showing valve position change commanded SEND_EVENT_WITH_2_U32_DATA( TD_EVENT_VALVE_POS_CHANGE, (U32)commandValvePos[ valve ], (U32)chgSteps );