On 25 June 2010 03:14, Alexey Starikovskiy <[email protected]> wrote:
> I think real problem is here:
>
> dy = pos->tran.y - old.y;
> dx = pos->tran.x - old.x;
> if (dx != 0 || dy != 0) {
> C = atan2(dx, dy);
> }
> C should be set to zero before if.
> dx == 0 and dy == 0 may be not what you want. fabs(dx)>eps will be more
> appropriate.
I agree that might give incorrect results from a mathematical point of
view (and I could probably afford to go a lot bigger than eps in
practice) but it seems to be an unlikely cause of the underlying
problem (unconnected stepgen function moving for no good reason,
numbers not incrementing by the requested amount).
I am pretty sure that atan2(0,0) returns zero rather than NaN, that is
certainly all I have seen on the linked HAL pin unless HAL translates
NaN to zero?
> and dx, dy and C and rKcount really belong to this function and not the
> global context.
Good point, this is true now, but hasn't always been so.
> Only 'old' is shared between two functions and needs to be global.
And that doesn't need to be, I moved the code that sets it to the
other function and forgot to move the debug HAL pin at the same time.
--
atp
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers