Abstract: A motor controller for an electric motor having a plurality of motor terminals is connected to a power supply and comprises a commutation control, a current sensor, a peak target circuit, a pulse width control and a reverse current control. The commutation control is connected to the motor terminals for causing current pulses to flow through selected terminals during each commutation state. The current sensor provides a sense signal representative of the current pulses, and the peak current target circuit provides a target signal. The pulse width control controls pulse width of the current pulses as a function of the sense signal and the target signal. The reverse current control prevents reverse current from flowing into the power supply during change of commutation state.