Once it has done this interrupt, the module will not do any more VME
interrupts until re-enabled with hpe1432_reenableInterrupt. Normally, the
last thing a host computer’s interrupt handler should do is call
hpe1432_reenableInterrupt.
Events that would have caused an interrupt, but which are blocked because
hpe1432_reenableInterrupt has not yet been called, will be saved. After
hpe1432_reenableInterrupt is called, these saved events will cause an
interrupt, so that there is no way for the host to “miss” an interrupt.
However, the module will only do one VME interrupt for all of the saved
events, so that the host computer will not get flooded with too many
interrupts.
For things like “HPE1432_IRQ_BLOCK_READY”, which are not events but
are actually states, the module will do an interrupt after
hpe1432_reenableInterrupt only if the state is still present. This allows the
host computer’s interrupt handler to potentially read multiple scans from an
HP E1432A module, and not get flooded with block ready interrupts after
the fact.
Host Interrupt Setup
This is a summary of how to set up an HP E1432A interrupt:
q Look at the Resource Manager to find out which VME interrupt lines are available.
q Tell the HP E1432A module to use the a VME interrupt line found in step one,
using hpe1432_setInterruptPriority.
q Set up an interrupt handler routine, using hpe1432_callBackInstall. The interrupt
handler routine will get called when the interrupt occurs.
q Set up interrupt mask in the HP E1432A module, using
hpe1432_setInterruptMask.
Host Interrupt Handling
When the HP E1432A asserts the VME interrupt line, the program will
cause the specified interrupt handler to get called. Typically the interrupt
handler routine will read data from the module, and then re-enable
HP E1432A interrupts with hpe1432_reenableInterrupt. The call to
hpe1432_reenableInterrupt must be done unless the host is not interested in
any more interrupts.
Inside the interrupt handler, almost any HP E1432A Host Interface library
function can be called. This works because the Host Interface library
disables interrupts around critical sections of code, ensuring that
communication with the HP E1432A module stays consistent. Things that
are not valid in the handler are:
HP E1432A User's Guide
Using the HP E1432A
3-30