Harmonious "Convergence"
Perl, 69 bytes

use bigrat;$s+=.5/($s&gt;$ARGV[$_=0]?-++$n:++$p-++$_/2),print for 1..pop


Takes inputs as command line arguments.

Explanation: bigrat enables fractions everywhere for accurate calculations. $s is the current sum of terms, $ARGV[0] is the target value, pop (same as $ARGV[1]) represents the number of terms, $p and $n represent the positive and negative term counts. $_ is either 1 or 0 depending on whether a positive or negative term was added.