⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apci1710_inccpt.c

📁 最新版comedi的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
			     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 + -