Small interval between interrupt ocurrance

There is an ADC slave device working under Windows NT40 SP6a.

Few channels, each channel has its own FIFO inside; IRQ is generated
for each channel after its FIFO is filled up with data.

Supposed, we have 2 channels working.
If the frequency rates of both channels differs a lot - everything
goes right. Interrupt from 1st channel, some time later - interrupt from
the 2nd one.

But, when the frequency rate is the same - interrupts overload the ISR&DPC
and it then stucks there… I mean there is an IRQ from the first 1st
channel and right after (the same number) IRQ from the second one.

Does anybody know how to manage such a situation ?

Thanx in advance.

P.S. Some hardware fixes can be done on ADC (if it need ones)


Best regards,
Dmitry Potapenko mailto:xxxxx@jeo.ru

I don’t understand well your description. Have both IRQ’s the same IRQL?
One measure I would try is that when either IRQ kicks in I would poll each
of the two sources, and if there is data disable their IRQ request and I would
launch the corresponding DPC.

At 12:52 PM 8/14/2003, you wrote:

There is an ADC slave device working under Windows NT40 SP6a.

Few channels, each channel has its own FIFO inside; IRQ is generated
for each channel after its FIFO is filled up with data.

Supposed, we have 2 channels working.
If the frequency rates of both channels differs a lot - everything
goes right. Interrupt from 1st channel, some time later - interrupt from
the 2nd one.

But, when the frequency rate is the same - interrupts overload the ISR&DPC
and it then stucks there… I mean there is an IRQ from the first 1st
channel and right after (the same number) IRQ from the second one.

Does anybody know how to manage such a situation ?

Thanx in advance.

P.S. Some hardware fixes can be done on ADC (if it need ones)


Best regards,
Dmitry Potapenko mailto:xxxxx@jeo.ru

George Blat
NT with real time performance
8016 188th SW, Edmonds, WA 98026

phone: 425-775-7475
fax: 781-998-5940
mailto:xxxxx@ntrealtime.com

> I don’t understand well your description. Have both IRQ’s the same IRQL?

The same number like IRQ11 (only one IRQ per device, not per channel)

One measure I would try is that when either IRQ kicks in I would poll each
of the two sources, and if there is data disable their IRQ request and I > would launch the corresponding DPC.

Do you mean to have a DPC per each channel and do all the work for data
read in DPC ?


Best regards,
Dmitry Potapenko mailto:xxxxx@jeo.ru