📄 apci1710_inccpt.c
字号:
if (b_AutoMode == APCI1710_DISABLE) { devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 = devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 | APCI1710_INDEX_AUTO_MODE; } else { devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 = devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 & (~APCI1710_INDEX_AUTO_MODE); } if (b_InterruptEnable == APCI1710_ENABLE) { devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister3 = devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister3 | APCI1710_ENABLE_INDEX_INT; } else { devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister3 = devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister3 & APCI1710_DISABLE_INDEX_INT; } devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_InitFlag. b_IndexInit = 1; } else { /********************************/ /* Interrupt parameter is wrong */ /********************************/ DPRINTK("Interrupt parameter is wrong\n"); i_ReturnValue = -7; } } else { /************************************/ /* The auto mode parameter is wrong */ /************************************/ DPRINTK("The auto mode parameter is wrong\n"); i_ReturnValue = -6; } } else { /***********************************************/ /* The index operating mode parameter is wrong */ /***********************************************/ DPRINTK("The index operating mode parameter is wrong\n"); i_ReturnValue = -5; } } else { /*******************************************/ /* The reference action parameter is wrong */ /*******************************************/ DPRINTK("The reference action parameter is wrong\n"); i_ReturnValue = -4; } } else { /****************************************/ /* Counter not initialised see function */ /* "i_APCI1710_InitCounter" */ /****************************************/ DPRINTK("Counter not initialised\n"); i_ReturnValue = -3; } } else { /*************************************************/ /* The selected module number parameter is wrong */ /*************************************************/ DPRINTK("The selected module number parameter is wrong\n"); i_ReturnValue = -2; } return (i_ReturnValue); }/*+----------------------------------------------------------------------------+| Function Name : _INT_ i_APCI1710_InitReference || (BYTE_ b_BoardHandle, || BYTE_ b_ModulNbr, || BYTE_ b_ReferenceLevel) |+----------------------------------------------------------------------------+| Task : Initialise the reference corresponding to the selected || module (b_ModulNbr). || || Reference level || --------------- || +--------------------+-------------------------+ || | b_ReferenceLevel | Operation | || +--------------------+-------------------------+ || | APCI1710_LOW | Reference occur if "0" | || |--------------------|-------------------------| || | APCI1710_HIGH | Reference occur if "1" | || +--------------------+-------------------------+ |+----------------------------------------------------------------------------+| Input Parameters : BYTE_ b_BoardHandle : Handle of board APCI-1710 || BYTE_ b_ModulNbr : Module number to configure || (0 to 3) || BYTE_ b_ReferenceLevel : Reference level. |+----------------------------------------------------------------------------+| Output Parameters : - |+----------------------------------------------------------------------------+| Return Value : 0: No error || -1: The handle parameter of the board is wrong || -2: The selected module number parameter is wrong || -3: Counter not initialised see function || "i_APCI1710_InitCounter" || -4: Reference level parameter is wrong |+----------------------------------------------------------------------------+*/INT i_APCI1710_InitReference (comedi_device *dev, BYTE b_ModulNbr, BYTE b_ReferenceLevel) { INT i_ReturnValue = 0; /**************************/ /* Test the module number */ /**************************/ if (b_ModulNbr < 4) { /*******************************/ /* Test if counter initialised */ /*******************************/ if (devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_InitFlag. b_CounterInit == 1) { /**************************************/ /* Test the reference level parameter */ /**************************************/ if (b_ReferenceLevel == 0 || b_ReferenceLevel == 1) { if (b_ReferenceLevel == 1) { devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 = devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 | APCI1710_REFERENCE_HIGH; } else { devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 = devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. s_ByteModeRegister. b_ModeRegister2 & APCI1710_REFERENCE_LOW; } outl(devpriv->s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_ModeRegister. dw_ModeRegister1_2_3_4,devpriv->s_BoardInfos. ui_Address + 20 + (64 * b_ModulNbr)); devpriv-> s_ModuleInfo [b_ModulNbr]. s_SiemensCounterInfo. s_InitFlag. b_ReferenceInit = 1; } else { /**************************************/ /* Reference level parameter is wrong */ /**************************************/ DPRINTK("Reference level parameter is wrong\n"); i_ReturnValue = -4; } } else { /****************************************/ /* Counter not initialised see function */ /* "i_APCI1710_InitCounter" */ /****************************************/ DPRINTK("Counter not initialised\n"); i_ReturnValue = -3; } } else { /*************************************************/ /* The selected module number parameter is wrong */ /*************************************************/ DPRINTK("The selected module number parameter is wrong\n"); i_ReturnValue = -2; } return (i_ReturnValue); } /*+----------------------------------------------------------------------------+| Function Name : _INT_ i_APCI1710_InitExternalStrobe || (BYTE_ b_BoardHandle, || BYTE_ b_ModulNbr, || BYTE_ b_ExternalStrobe, || BYTE_ b_ExternalStrobeLevel) |+----------------------------------------------------------------------------+| Task : Initialises the external strobe level corresponding to || the selected module (b_ModulNbr). |+----------------------------------------------------------------------------+| Input Parameters : BYTE_ b_BoardHandle : Handle of board APCI-1710 || BYTE_ b_ModulNbr : Module number to configure || (0 to 3) || BYTE_ b_ExternalStrobe : External strobe selection || 0 : External strobe A || 1 : External strobe B || BYTE_ b_ExternalStrobeLevel : External strobe level || APCI1710_LOW : || External latch occurs if "0" || APCI1710_HIGH : || External latch occurs if "1" |+----------------------------------------------------------------------------+| Output Parameters : - |+----------------------------------------------------------------------------+| Return Value : 0: No error || -1: The handle parameter of the board is wrong || -2: The selected module number is wrong || -3: Counter not initialised. || See function "i_APCI1710_InitCounter" || -4: External strobe selection is wrong || -5: External strobe level parameter is wrong |+----------------------------------------------------------------------------+*/INT i_APCI1710_InitExternalStrobe (comedi_device *dev, BYTE b_ModulNbr, BYTE b_ExternalStrobe, BYTE b_ExternalStrobeLevel) { INT i_ReturnValue = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -