A method for efficiently charging a battery. The method includes producing
a first signal having a voltage level dependent on the voltage of the
battery, comparing the voltage level of the first signal with a settable
voltage representative of a maximum battery charging current, and
producing a second signal representative of a charging current to be
provided to the battery, the second signal having a voltage level
selected to be the lower voltage level between the first signal and the
settable voltage.