CAD CAM EDM DRO - Yahoo Group Archive

Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?

Posted by Les Newell
on 2005-07-25 02:23:26 UTC
Hi Alan,

The Mach2/3 driver is not a normal windows task. It installs itself as
an interrupt handler for the timer then reprograms the interrupt
controller to make the timer the highest priority. The task scheduler is
also interrupt driven but as it is now at a lower priority the Mach2
driver will be serviced before the task scheduler. The driver is then
fed from the main Mach2 application which runs as a normal high priority
Windows task. The application communicates with the driver through a
circular buffer. Each entry in the buffer is the equivalent to one cycle
of EMC's servo loop. EMC works out the velocities in real time every x
milliseconds while Mach2 calculates them in advance. The buffer is
continually filled from Mach2 and emptied by the driver. There are a few
weaknesses in this arrangement:

DMA or any hardware that disables the CPU will of course interrupt the
pulses. This is the case with any software based pulser including EMC.
Some applications and services such as qttask reprogram the timer and/or
interrupt controller causing the driver to run slow or end up running at
a lower priority.
If the system is heavily loaded and Mach2 does not keep the circular
buffer full the pulses will abruptly halt until Mach2 catches up then
they will abruptly start up again. Using a bigger circular buffer helps
but slows down jogging/pause response. This is why response can become
very choppy for slow CPUs. It doesn't help that the driver is taking up
a fair percentage of CPU time.

Les


KM6VV wrote:

>Hi Les,
>
>Interrupt priority? That's it? But isn't it more like the highest TASK
>priority? the pulse stream could still be delayed or altered if another task
>was still "taking it's good sweat time", and not relinquishing control. Do you
>have more detail?
>
>Alan KM6VV
>
>
>

Discussion Thread

ibewgypsie 2005-07-24 06:41:06 UTC Windows timing subroutines, how do they work? Jack Hudler 2005-07-24 12:59:51 UTC RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Jon Elson 2005-07-24 13:00:59 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? KM6VV 2005-07-24 13:14:20 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? ibewgypsie 2005-07-24 13:30:22 UTC Re: Windows timing subroutines, how do they work? Jim Peck 2005-07-24 14:45:43 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Les Newell 2005-07-24 15:04:21 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? KM6VV 2005-07-24 16:46:14 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? notoneleft 2005-07-24 17:20:45 UTC Re: Windows timing subroutines, how do they work? Jon Elson 2005-07-24 20:00:49 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Jack Hudler 2005-07-24 21:17:33 UTC RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? ibewgypsie 2005-07-24 22:04:15 UTC Re: Windows timing subroutines, how do they work? Mariss Freimanis 2005-07-24 23:41:25 UTC Re: Windows timing subroutines, how do they work? Jack Hudler 2005-07-25 00:45:30 UTC RE: [CAD_CAM_EDM_DRO] Re: Windows timing subroutines, how do they work? caedave 2005-07-25 02:23:24 UTC Re: [CAD_CAM_EDM_DRO] Re: Windows timing subroutines, how do they work? Les Newell 2005-07-25 02:23:26 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Les Newell 2005-07-25 02:34:10 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Fred Smith 2005-07-25 07:47:13 UTC Re: Windows timing subroutines, how do they work? Alan Marconett 2005-07-25 08:44:15 UTC RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Jon Elson 2005-07-25 09:30:49 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? ibewgypsie 2005-07-25 10:01:52 UTC Re: Windows timing subroutines, how do they work? Les Newell 2005-07-25 11:02:16 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Alan Marconett 2005-07-25 13:22:42 UTC RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? Les Newell 2005-07-25 14:58:54 UTC Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work? caudlet 2005-07-25 19:46:24 UTC Re: Windows timing subroutines, how do they work? ibewgypsie 2005-07-25 21:19:36 UTC Re: Windows timing subroutines, how do they work? Jymmm 2005-07-25 22:29:38 UTC Re: Windows timing subroutines, how do they work? yahoo@h... 2005-07-26 02:10:13 UTC RE: [CAD_CAM_EDM_DRO] Re: Windows timing subroutines, how do they work? Mariss Freimanis 2005-07-26 08:15:13 UTC Re: Windows timing subroutines, how do they work? Mariss Freimanis 2005-07-26 08:19:33 UTC Re: Windows timing subroutines, how do they work? ibewgypsie 2005-07-26 10:36:48 UTC Re: Windows timing subroutines, how do they work? JitteryMonkey pic ibewgypsie 2005-07-26 10:48:27 UTC Re: Windows timing subroutines, how do they work? JitteryMonkey pic ibewgypsie 2005-07-26 11:08:39 UTC Re: Windows timing subroutines, how do they work? Andrey Lipavsky 2005-07-27 06:05:52 UTC Converting a rotary table victorlorenzo 2005-07-27 07:02:24 UTC Re: Converting a rotary table David Micklethwaite 2005-07-27 16:36:34 UTC Re: [CAD_CAM_EDM_DRO] Converting a rotary table cutsgems 2005-07-27 18:38:06 UTC Re: Converting a rotary table Andrey Lipavsky 2005-07-27 20:24:07 UTC RE: [CAD_CAM_EDM_DRO] Re: Converting a rotary table cutsgems 2005-07-28 08:54:39 UTC Re: Converting a rotary table Les Newell 2005-07-28 09:23:43 UTC Re: [CAD_CAM_EDM_DRO] Re: Converting a rotary table Andrey Lipavsky 2005-07-31 16:43:28 UTC RE: [CAD_CAM_EDM_DRO] Re: Converting a rotary table