Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Do you have any information on how to use the interrupt from a PCI-7344

I know how to build a device driver that implements an interrupt handler. I need specific info like mfg ID and device ID, class, etc. to put in the inf file to install the handler. Does the IRQ need to be reset by the ISR to get it to go again. Is it level or edge triggered?
0 Kudos
Message 1 of 7
(3,873 Views)
mStoltze,

After reading over your post, I am not entirely clear on what you are trying to accomplish with the PCI-7344, and what information you are looking to obtain.

If you could post a reply and give some background on what you are trying to do with the PCI-7344, explain the application that you are trying to use it for, and then give some additional detail about the information that you would like to obtain about the device, then this forum would probably be much better equipped to help you with the issue that you are having.

Regards,
Jed R.
Applications Engineer
National Instruments
0 Kudos
Message 2 of 7
(3,873 Views)
Thanks for getting back to me.

I have an instrument which has among other things, a CCD camera and some moveable optics. When each image frame is acquired I have the camera trigger an encoder channel to capture an angle to associate with each frame. I also need to capture frame timing information and neither the (roper scientific) image board nor the 7344 has a time base that I can correlate with the PC clock. If I set up a thread on the PC to poll for availability of an encoder reading or to poll for availability of a new frame I don't get reliable timing readings. This is probably because the system is very busy doing image analysis and other stuff at the time. My thought is to trigger an interrupt on the PC, have the ISR acqure the timing info, then set
an event. Then even if it takes a few milliseconds for the task level software to respond to the event I'll have reliable timing info.

If I have a facility like this implemented I can offload other stuff to the motion board and squander fewer PC compute cycles polling for completion events.

The 7344 software manual describes flex_set_irq_mask which I think will allow me to control what events on the board will cause an interrupt to be generated.

I need a little more info. Do you have an example interrupt handler? How do you enable interrupts from the 7344? Does the interrupt circuitry need to be reset to be able to assert another interrupt later?
0 Kudos
Message 3 of 7
(3,873 Views)
mStoltze,

If you are looking to accurately record the times at which events occur in your system, the easiest way to keep track of that type of event would be to use a counter/timer board. A counter/timer has an extremely accurate timebase (usually 100 kHz, 20 MHz, or 80 MHz), and would be able to handle a trigger pulse completely independent of software.

You would only need to route your trigger signal to the counter/timer board, and then set the board up for buffered event counting. The configuration and programming of this type of application would be quite easy.

You could use either any counter/timer or multifunction data acquisition board for this type of application.

Regards,
Jed R.
Applications Engineer
National Instruments
0 Kudos
Message 4 of 7
(3,873 Views)
But we don't want to have to retrofit all the units in the field with new hardware. We need a software solution.
0 Kudos
Message 5 of 7
(3,873 Views)
mStoltze,

I have looked through the installed help documentation for NI-Motion/FlexMotion 6.1 and there is no documentation on the flex_set_irq_mask function that you referenced in your post. In addition, I have searched our KnowledgeBases and example programs, and no results are returned for the flex_set_irq_mask function. If you would like to try implementing a software solution, it may be possible, but there is very little information or documentation for the function that you mentioned. In the end, other than moving to a real-time operating system, a counter/timer board is still the easiest and most effective way of adding the functionality that you are seeking.

Regards,
Jed R.
Applications Engineer
National Instrume
nts
0 Kudos
Message 6 of 7
(3,873 Views)
Thanks for trying. I may have found an alternate solution.

In the 5.1.1 doc flex_set_irq_mask is in the Advanced Functions section. In the 6.1 NI Motions C Reference Help it appears to have been removed from the Contents, but still appears if you search for flex_set_irq_mask. I'm a little surprised that you folks don't know anything about it. It would be a very handy facility for what I am doing.
0 Kudos
Message 7 of 7
(3,873 Views)