CAD CAM EDM DRO - Yahoo Group Archive

Re: [CAD_CAM_EDM_DRO] Re: Re: step pulse timing resolution

Posted by Anne Ogborn
on 2000-10-14 00:41:36 UTC
DDA should handle converting the stream of interrupts into
smooth motion pulses. Works like this, pseudocode
simplified to illustrate the idea by assuming DX > DY
and DX > 0.

DX, DY are distances to be moved.
VY is float.

VY = DY / DX;

X = XFRAC = 0;
Y = YFRAC = 0;

while (x < DX)
{
step the X axis;
YFRAC += VY;
if (YFRAC > 1.0)
{
step the Y axis;
YFRAC -= 1.0;
}
}

The "error" in this is only the resolution of the math package.
Of course we don't need to actually use floating point.
We'll implement this in fixed point.
The
acceptable error is the 1/(# steps end to end, longest axis)
Suppose we step 0.0001 and have 40" of travel. Then the
required resolution is 1/400,000 - sane thing to do is
to just go ahead and use 24 bits of resolution. If you can accept
the 0.0001 per 6.4" loss of accuracy, you can use 16 bit math, but
24 bits gives you 0.0001 loss every 140'.

(and yes, I've fixed this bug once, by explaining the problem to
the plotter manufacturer who will remain nameless).

A handy modification of this is to keep the interrupt interval constant
and use VX != 1.0 , so you can control both speed and direction.

Your real problem is going to be that you can't just turn the interrupts
off and leave them off. You'll starve the rest of the system, which was doing
important, exciting, interesting things like swapping VM out to disk and mundane
but useful things like dealing with the video interrupt.

Frankly, folks, this is the classic case for using a hardware controller.

Discussion Thread

Jon Elson 2000-10-12 23:47:34 UTC Re: step pulse timing resolution Matt Shaver 2000-10-13 05:19:20 UTC Re: [CAD_CAM_EDM_DRO] Re: step pulse timing resolution Art Fenerty 2000-10-13 12:07:19 UTC Re: [CAD_CAM_EDM_DRO] Re: step pulse timing resolution Jon Elson 2000-10-13 12:21:23 UTC Re: [CAD_CAM_EDM_DRO] Re: step pulse timing resolution Jon Elson 2000-10-13 16:24:07 UTC Re: [CAD_CAM_EDM_DRO] Re: step pulse timing resolution ballendo@y... 2000-10-13 20:27:20 UTC Re: Re: step pulse timing resolution ballendo@y... 2000-10-13 20:53:54 UTC Re: Re: step pulse timing resolution Jon Elson 2000-10-13 23:34:21 UTC Re: [CAD_CAM_EDM_DRO] Re: Re: step pulse timing resolution ballendo@y... 2000-10-14 00:13:36 UTC Re: Re: Re: step pulse timing resolution Anne Ogborn 2000-10-14 00:41:36 UTC Re: [CAD_CAM_EDM_DRO] Re: Re: step pulse timing resolution Art Fenerty 2000-10-14 05:12:10 UTC Re: [CAD_CAM_EDM_DRO] Re: Re: step pulse timing resolution Terry Ackland 2000-10-14 06:11:58 UTC Re: step pulse timing resolution Art Fenerty 2000-10-14 10:51:37 UTC Re: [CAD_CAM_EDM_DRO] Re: step pulse timing resolution ballendo@y... 2000-10-14 11:54:21 UTC Re: step pulse timing resolution Alan Marconett KM6VV 2000-10-14 12:22:12 UTC Re: [CAD_CAM_EDM_DRO] Re: step pulse timing resolution