Zero crossings for a non-symmetrical V.sub.IN may be determined by first
amplifying and clipping V.sub.IN to create a non-symmetrical square wave
whose zero crossings are those of V.sub.IN. A selected polarity edge of
the non-symmetrical square wave may be taken as a 0.degree. indicator and
is used to create a fundamental sawtooth ramp of the same frequency and
in phase with V.sub.IN. The fundamental sawtooth ramp starts at zero
volts, linearly ramps to some peak and is AC coupled to a comparator
whose other input is zero volts. That creates a square wave that is
symmetrical as to its half-cycles, and whose every other edge is
synchronous with the start of the fundamental sawtooth ramp, and whose
intervening edges occur in the middle of the ramp. The intervening edge
is detected and taken as a 180.degree. indicator. The 0.degree. indicator
and the 180.degree. indicator can be merged into a combined signal that
may be used to initiate synchronous rectification as well as to create a
utility sawtooth ramp at twice the rate of the fundamental sawtooth ramp
and whose amplitude may also be controlled. The fundamental ramp can be
used to create an arbitrary number of selectedly placed pulses indicative
of a desired division of the period of a cycle for V.sub.IN by first
creating a steady voltage proportional to the peak voltage of the
fundamental ramp, and then comparing proportional occurrences of that
fundamental ramp to thresholds that are selected percentages of the
steady voltage proportional to the peak voltage.