xPCI-1500 API
xPCI-1500 interrupt management functions

Functions

_INT_ i_PCI1500_SetBoardIntRoutine (HANDLE h_DeviceHandle, void(*v_FunctionName)(HANDLE h_DeviceHandle, BYTE b_FIFOOverflow, BYTE b_InterruptMask, WORD w_InputValues))
 
_INT_ i_PCI1500_ResetBoardIntRoutine (HANDLE h_DeviceHandle)
 

Detailed Description

Function Documentation

_INT_ i_PCI1500_SetBoardIntRoutine ( HANDLE  h_DeviceHandle,
void(*)(HANDLE h_DeviceHandle, BYTE b_FIFOOverflow, BYTE b_InterruptMask, WORD w_InputValues)  v_FunctionName 
)

Install an interrupt callback function. This function will be called each time the board generate an interruption.
The value of b_InterruptMask will enable you to determine the source of the interruption:

Parameters
[in]h_DeviceHandle: Handle of the board
[in]v_FunctionName: Address of the callback function
h_DeviceHandle : Handle of the board
b_FIFOOverflow : If uc_FIFOOverflow != 0, there are too many untreated interrupts in the kernel FIFO, and any new information is lost
dw_InterruptMask : Source of the interrupt
w_InputValues : Values of the input

The source of the interrupt can be:

  • 0x1: Port A interrupt
  • 0x2: Port B interrupt
  • 0x4: Timer 1 interrupt
  • 0x8: Timer 2 interrupt
  • 0x10: Timer 3 interrupt
  • 0x20: Watchdog interrupt
  • 0x40: Low voltage detected
  • 0x80: Short circuit detected
Returns
0 : No Error
-1 : The device handle parameter is wrong
-2 : An interrupt routine was still isntalled. Remove it with i_PCI1500_ResetBoardIntRoutine and retry
-3 : Error while creating kill event
-4 : Error while creating interrupt event
-5 : Error while creating interrupt thread
-6 : Error while changing the priority class of the thread
-7 : Error while changing the priority of the thread
-8 : Error while calling the IOCTL command
-9 : Error in the interrupt callback function
_INT_ i_PCI1500_ResetBoardIntRoutine ( HANDLE  h_DeviceHandle)

Deinstall the interrupt callback function.

Parameters
[in]h_DeviceHandle: Handle of the board
Returns
0 : No Error
-1 : The device handle parameter is wrong
-2 : No interrupt routine installed
-3 : Error in the reset interrupt callback function