亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? apci1710_ssi.c

?? 最新版comedi的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**@verbatimCopyright (C) 2004,2005  ADDI-DATA GmbH for the source code of this module.                 ADDI-DATA GmbH         Dieselstrasse 3         D-77833 Ottersweier         Tel: +19(0)7223/9493-0         Fax: +49(0)7223/9493-92         http://www.addi-data-com         info@addi-data.com This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAYou shoud also find the complete GPL in the COPYING file accompanying this source code.@endverbatim*//*      +-----------------------------------------------------------------------+  | (C) ADDI-DATA GmbH          Dieselstra?e 3       D-77833 Ottersweier  |  +-----------------------------------------------------------------------+  | Tel : +49 (0) 7223/9493-0     | email    : info@addi-data.com         |  | Fax : +49 (0) 7223/9493-92    | Internet : http://www.addi-data.com   |  +-----------------------------------------------------------------------+  | Project     : API APCI1710    | Compiler : gcc                        |  | Module name : SSI.C           | Version  : 2.96                       |  +-------------------------------+---------------------------------------+  | Project manager: Eric Stolz   | Date     :  02/12/2002                |  +-----------------------------------------------------------------------+  | Description :   APCI-1710 SSI counter module                          |  |                                                                       |  |                                                                       |  +-----------------------------------------------------------------------+  |                             UPDATES                                   |  +-----------------------------------------------------------------------+  |   Date   |   Author  |          Description of updates                |  +----------+-----------+------------------------------------------------+  | 13/05/98 | S. Weber  | SSI digital input / output implementation      |  |----------|-----------|------------------------------------------------|  | 22/03/00 | C.Guinot  | 0100/0226 -> 0200/0227                         |  |          |           | ?nderung in InitSSI Funktion                   |  |          |           | b_SSIProfile >= 2 anstatt b_SSIProfile > 2     |  |          |           |                                                |  +-----------------------------------------------------------------------+  | 08/05/00 | Guinot C  | - 0400/0228 All Function in RING 0             |  |          |           |   available                                    |  +-----------------------------------------------------------------------+*//*+----------------------------------------------------------------------------+|                               Included files                               |+----------------------------------------------------------------------------+*/#include "APCI1710_Ssi.h"/*+----------------------------------------------------------------------------+| Function Name     : _INT_ i_APCI1710_InitSSI                               ||                               (BYTE_    b_BoardHandle,                     ||                                BYTE_    b_ModulNbr,                        ||                                BYTE_    b_SSIProfile,                      ||                                BYTE_    b_PositionTurnLength,              ||                                BYTE_    b_TurnCptLength,                   ||                                BYTE_    b_PCIInputClock,                   ||                                ULONG_  ul_SSIOutputClock,                  ||                                BYTE_    b_SSICountingMode)                 |+----------------------------------------------------------------------------+| Task              : Configure the SSI operating mode from selected module  ||                     (b_ModulNbr). You must calling this function be for you||                     call any other function witch access of SSI.           |+----------------------------------------------------------------------------+| Input Parameters  : BYTE_ b_BoardHandle         : Handle of board APCI-1710||                     BYTE_ b_ModulNbr            : Module number to         ||                                                   configure (0 to 3)       ||                     BYTE_  b_SSIProfile         : Selection from SSI       ||                                                   profile length (2 to 32).||                     BYTE_  b_PositionTurnLength : Selection from SSI       ||                                                   position data length     ||                                                   (1 to 31).               ||                     BYTE_  b_TurnCptLength      : Selection from SSI turn  ||                                                   counter data length      ||                                                   (1 to 31).               ||                     BYTE   b_PCIInputClock      : Selection from PCI bus   ||                                                   clock                    ||                                                 - APCI1710_30MHZ :         ||                                                   The PC have a PCI bus    ||                                                   clock from 30 MHz        ||                                                 - APCI1710_33MHZ :         ||                                                   The PC have a PCI bus    ||                                                   clock from 33 MHz        ||                     ULONG_ ul_SSIOutputClock    : Selection from SSI output||                                                   clock.                   ||                                                   From  229 to 5 000 000 Hz||                                                   for 30 MHz selection.    ||                                                   From  252 to 5 000 000 Hz||                                                   for 33 MHz selection.    ||                     BYTE   b_SSICountingMode    : SSI counting mode        ||                                                   selection                ||                                                 - APCI1710_BINARY_MODE :   ||                                                    Binary counting mode.   ||                                                 - APCI1710_GRAY_MODE :     ||                                                    Gray counting mode.	b_ModulNbr			= CR_AREF(insn->chanspec);	b_SSIProfile		= (BYTE) data[0];  	b_PositionTurnLength= (BYTE) data[1];  	b_TurnCptLength		= (BYTE) data[2];	b_PCIInputClock		= (BYTE) data[3];	ul_SSIOutputClock	= (ULONG) data[4];	b_SSICountingMode	= (BYTE)  data[5];     |+----------------------------------------------------------------------------+| Output Parameters : -                                                      |+----------------------------------------------------------------------------+| Return Value      : 0: No error                                            ||                    -1: The handle parameter of the board is wrong          ||                    -2: The module parameter is wrong                       ||                    -3: The module is not a SSI module                      ||                    -4: The selected SSI profile length is wrong            ||                    -5: The selected SSI position data length is wrong      ||                    -6: The selected SSI turn counter data length is wrong  ||                    -7: The selected PCI input clock is wrong               ||                    -8: The selected SSI output clock is wrong              ||                    -9: The selected SSI counting mode parameter is wrong   |+----------------------------------------------------------------------------+*/INT   i_APCI1710_InsnConfigInitSSI(comedi_device *dev,comedi_subdevice *s,	comedi_insn *insn,lsampl_t *data)	{	INT    i_ReturnValue = 0;	UINT   ui_TimerValue;	BYTE   b_ModulNbr,b_SSIProfile,b_PositionTurnLength,b_TurnCptLength,b_PCIInputClock,b_SSICountingMode;	ULONG  ul_SSIOutputClock;				b_ModulNbr			= CR_AREF(insn->chanspec);	b_SSIProfile		= (BYTE) data[0];  	b_PositionTurnLength= (BYTE) data[1];  	b_TurnCptLength		= (BYTE) data[2];	b_PCIInputClock		= (BYTE) data[3];	ul_SSIOutputClock	= (ULONG) data[4];	b_SSICountingMode	= (BYTE)  data[5];	i_ReturnValue		= insn->n;	/**************************/	/* Test the module number */	/**************************/	if (b_ModulNbr < 4)	   {	   /***********************/	   /* Test if SSI counter */	   /***********************/	   if ((devpriv->s_BoardInfos.		dw_MolduleConfiguration [b_ModulNbr] & 0xFFFF0000UL) == APCI1710_SSI_COUNTER)	      {	      /*******************************/	      /* Test the SSI profile length */	      /*******************************/	      // CG 22/03/00 b_SSIProfile >= 2 anstatt b_SSIProfile > 2	      if (b_SSIProfile >= 2 && b_SSIProfile < 33)		 {		 /*************************************/		 /* Test the SSI position data length */		 /*************************************/		 if (b_PositionTurnLength > 0 && b_PositionTurnLength < 32)		    {		    /*****************************************/		    /* Test the SSI turn counter data length */		    /*****************************************/		    if (b_TurnCptLength > 0 && b_TurnCptLength < 32)		       {		       /***************************/		       /* Test the profile length */		       /***************************/		       if ((b_TurnCptLength + b_PositionTurnLength) <= b_SSIProfile)			  {			  /****************************/			  /* Test the PCI input clock */			  /****************************/			  if (b_PCIInputClock == APCI1710_30MHZ || b_PCIInputClock == APCI1710_33MHZ)			     {			     /*************************/			     /* Test the output clock */			     /*************************/			     if ((b_PCIInputClock == APCI1710_30MHZ &&				  (ul_SSIOutputClock > 228 && ul_SSIOutputClock <= 5000000UL)) ||				 (b_PCIInputClock == APCI1710_33MHZ &&				  (ul_SSIOutputClock > 251 && ul_SSIOutputClock <= 5000000UL)))				{				if (b_SSICountingMode == APCI1710_BINARY_MODE ||				    b_SSICountingMode == APCI1710_GRAY_MODE)				   {				   /**********************/				   /* Save configuration */				   /**********************/				   devpriv->s_ModuleInfo [b_ModulNbr].				   s_SSICounterInfo.				   b_SSIProfile = b_SSIProfile;				   				   devpriv->s_ModuleInfo [b_ModulNbr].				   s_SSICounterInfo.				   b_PositionTurnLength = b_PositionTurnLength;				   devpriv->s_ModuleInfo [b_ModulNbr].				   s_SSICounterInfo.				   b_TurnCptLength = b_TurnCptLength;				   /*********************************/				   /* Initialise the profile length */				   /*********************************/				   if (b_SSICountingMode == APCI1710_BINARY_MODE)				      {				    					outl(b_SSIProfile + 1,devpriv->s_BoardInfos.ui_Address + 4 + (64 * b_ModulNbr));				      }				   else				      {											   outl(b_SSIProfile,devpriv->s_BoardInfos.ui_Address + 4 + (64 * b_ModulNbr));				      }				   /******************************/				   /* Calculate the output clock */				   /******************************/				   ui_TimerValue = (UINT) (((ULONG) (b_PCIInputClock) * 500000UL) / ul_SSIOutputClock);				   /************************/				   /* Initialise the timer */				   /************************/				  				    outl(ui_TimerValue,devpriv->s_BoardInfos.ui_Address + (64 * b_ModulNbr));				   /********************************/				   /* Initialise the counting mode */				   /********************************/										outl(7 * b_SSICountingMode,devpriv->s_BoardInfos.ui_Address + 12 + (64 * b_ModulNbr));				   					devpriv->s_ModuleInfo [b_ModulNbr].s_SSICounterInfo.b_SSIInit = 1;				   }				else				   {				   /*****************************************************/				   /* The selected SSI counting mode parameter is wrong */				   /*****************************************************/                          DPRINTK("The selected SSI counting mode parameter is wrong\n");				   i_ReturnValue = -9;				   }				}			     else				{				/******************************************/				/* The selected SSI output clock is wrong */				/******************************************/				DPRINTK("The selected SSI output clock is wrong\n");				i_ReturnValue = -8;				}			     }			  else			     {			     /*****************************************/			     /* The selected PCI input clock is wrong */			     /*****************************************/				 DPRINTK("The selected PCI input clock is wrong\n");			     i_ReturnValue = -7;			     }			  }		       else			  {			  /********************************************/			  /* The selected SSI profile length is wrong */			  /********************************************/			  DPRINTK("The selected SSI profile length is wrong\n");				  i_ReturnValue = -4;			  }		       }		    else		       {		       /******************************************************/		       /* The selected SSI turn counter data length is wrong */		       /******************************************************/			   DPRINTK("The selected SSI turn counter data length is wrong\n");			       i_ReturnValue = -6;		       }		    }		 else		    {		    /**************************************************/		    /* The selected SSI position data length is wrong */		    /**************************************************/			DPRINTK("The selected SSI position data length is wrong\n");		    i_ReturnValue = -5;		    }		 }	      else		 {		 /********************************************/		 /* The selected SSI profile length is wrong */		 /********************************************/		 DPRINTK("The selected SSI profile length is wrong\n");		 i_ReturnValue = -4;		 }	      }	   else	      {	      /**********************************/	      /* The module is not a SSI module */	      /**********************************/	      DPRINTK("The module is not a SSI module\n");		      i_ReturnValue = -3;	      }	   }	else	   {	   /***********************/	   /* Module number error */	   /***********************/	   DPRINTK("Module number error\n");	   i_ReturnValue = -2;	   }	return (i_ReturnValue);	}/*+----------------------------------------------------------------------------+| Function Name     : _INT_  i_APCI1710_Read1SSIValue                        ||                               (BYTE_     b_BoardHandle,                    ||                                BYTE_     b_ModulNbr,                       ||                                BYTE_     b_SelectedSSI,                    ||                                PULONG_ pul_Position,                       ||                                PULONG_ pul_TurnCpt)  INT i_APCI1710_ReadSSIValue(comedi_device *dev,comedi_subdevice *s,	comedi_insn *insn,lsampl_t *data)                       |+----------------------------------------------------------------------------+| Task              :  						Read the selected SSI counter (b_SelectedSSI) from     ||                     selected module (b_ModulNbr).						or Read all SSI counter (b_SelectedSSI) from              ||                     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_SelectedSSI         : Selection from SSI       ||                                                   counter (0 to 2)        b_ModulNbr		=   (BYTE) CR_AREF(insn->chanspec);	b_SelectedSSI	=	(BYTE) CR_CHAN(insn->chanspec); (in case of single ssi)	b_ReadType		=	(BYTE) CR_RANGE(insn->chanspec);|+----------------------------------------------------------------------------+| Output Parameters : PULONG_  pul_Position       : SSI position in the turn ||                     PULONG_  pul_TurnCpt        : Number of turns pul_Position	=	(PULONG) &data[0];	pul_TurnCpt		=	(PULONG) &data[1];         |+----------------------------------------------------------------------------+| Return Value      : 0: No error                                            ||                    -1: The handle parameter of the board is wrong          ||                    -2: The module parameter is wrong                       ||                    -3: The module is not a SSI module                      ||                    -4: SSI not initialised see function                    ||                        "i_APCI1710_InitSSI"                                ||                    -5: The selected SSI is wrong                           |+----------------------------------------------------------------------------+*/   INT i_APCI1710_InsnReadSSIValue(comedi_device *dev,comedi_subdevice *s,	comedi_insn *insn,lsampl_t *data)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级高清大全免费观看| 懂色av噜噜一区二区三区av| 欧美日韩专区在线| 一个色综合av| 欧美精品在线观看一区二区| 午夜精品爽啪视频| 日韩一级大片在线观看| 国产一区二区三区久久久| 国产肉丝袜一区二区| 91亚洲资源网| 视频一区二区三区中文字幕| 日韩午夜激情视频| 国产成人av影院| 亚洲男人的天堂在线aⅴ视频| 欧美特级限制片免费在线观看| 亚洲图片自拍偷拍| 日韩欧美国产小视频| 丁香六月综合激情| 有码一区二区三区| 日韩欧美一区二区视频| 国产**成人网毛片九色| 亚洲一区二区三区四区在线免费观看| 欧美年轻男男videosbes| 久久99精品久久久久婷婷| 国产精品免费网站在线观看| 在线免费观看成人短视频| 麻豆国产欧美一区二区三区| 国产精品系列在线| 欧美区视频在线观看| 国产主播一区二区三区| 亚洲女同ⅹxx女同tv| 69p69国产精品| 99久久伊人精品| 免费欧美在线视频| 最新日韩在线视频| 精品欧美黑人一区二区三区| 91在线精品一区二区三区| 久久国产精品一区二区| 亚洲女同一区二区| 久久久99久久| 欧美猛男gaygay网站| 不卡区在线中文字幕| 青青草精品视频| 亚洲精品亚洲人成人网在线播放| 日韩欧美国产电影| 欧美日韩日本视频| k8久久久一区二区三区| 久久99国产精品久久| 亚洲午夜在线电影| 中文字幕一区二区三区在线观看| 欧美成人r级一区二区三区| 91福利在线看| 成人av网在线| 国产一区二区三区免费观看| 日韩不卡一区二区| 国产a级毛片一区| 日韩电影一二三区| 亚洲国产精品久久久男人的天堂| 中文字幕精品—区二区四季| 欧美电视剧免费全集观看| 欧美日韩亚洲另类| 91国偷自产一区二区三区成为亚洲经典 | 亚洲在线中文字幕| 国产精品女同一区二区三区| 久久久影院官网| 欧美xxx久久| 日韩欧美国产三级| 欧美一区二区三区精品| 欧美日韩精品免费观看视频| 色天天综合久久久久综合片| av男人天堂一区| 99视频超级精品| av激情综合网| 91影视在线播放| 色综合久久久久综合体桃花网| 99国产精品久| 91视频免费播放| 色妞www精品视频| 日本韩国欧美三级| 欧美性大战久久久| 欧美色男人天堂| 91麻豆精品国产91久久久| 欧美美女黄视频| 欧美一区二区三区在线电影 | 成人性色生活片| 国产99久久久国产精品潘金| 国产91丝袜在线播放九色| 韩国av一区二区三区四区| 国产精选一区二区三区| 国产成人午夜片在线观看高清观看| 国产精品自拍网站| 国产一区三区三区| 成人三级在线视频| 91看片淫黄大片一级在线观看| 日本精品免费观看高清观看| 欧美性大战久久久| 日韩一二三区不卡| 国产午夜亚洲精品午夜鲁丝片| 国产欧美日韩视频一区二区 | 蜜臀av一区二区在线免费观看| 久久99在线观看| 成人午夜精品在线| 在线精品观看国产| 欧美成人精品福利| 国产欧美日韩视频在线观看| 亚洲精选视频免费看| 午夜精品一区二区三区免费视频| 免费观看一级欧美片| 国产.欧美.日韩| 在线免费不卡电影| 精品88久久久久88久久久| 国产精品天干天干在观线| 亚洲精品伦理在线| 蜜桃免费网站一区二区三区| 福利一区二区在线| 欧美日韩午夜在线视频| 2021久久国产精品不只是精品| 亚洲欧洲精品一区二区三区 | 欧美丰满嫩嫩电影| 国产欧美日韩激情| 午夜视频在线观看一区二区三区| 精品在线观看视频| 99re免费视频精品全部| 欧美一区二区三区思思人| 国产精品青草综合久久久久99| 亚洲一区在线观看网站| 国产一区二区在线观看免费| 色菇凉天天综合网| 国产三级精品在线| 男人的天堂久久精品| 91视视频在线直接观看在线看网页在线看| 欧美日韩不卡在线| 1区2区3区欧美| 精品一区二区在线看| 欧美性生活大片视频| 国产精品看片你懂得| 精品在线亚洲视频| 欧美日韩精品免费| 亚洲欧洲精品一区二区三区不卡| 精品一区二区日韩| 欧美美女一区二区在线观看| 久久99最新地址| 欧美日韩国产成人在线免费| 亚洲色图在线视频| 国产精品 日产精品 欧美精品| 337p亚洲精品色噜噜| 亚洲欧美成人一区二区三区| 国产91丝袜在线播放0| 精品免费一区二区三区| 日韩电影在线一区| 欧美日韩精品三区| 亚洲精品国产成人久久av盗摄| 大胆亚洲人体视频| 国产亚洲欧洲997久久综合| 青青青伊人色综合久久| 欧美日韩精品一区二区天天拍小说| 亚洲视频 欧洲视频| 成人精品小蝌蚪| 国产欧美日本一区二区三区| 久久国产精品第一页| 日韩午夜在线影院| 麻豆久久久久久久| 欧美成人三级在线| 久久99日本精品| 精品国产成人系列| 精品在线播放午夜| 日韩欧美在线一区二区三区| 人禽交欧美网站| 欧美tickling网站挠脚心| 久久激情五月婷婷| 精品粉嫩超白一线天av| 精品在线观看免费| 久久久99免费| 成人美女在线观看| 亚洲天堂免费看| 在线国产电影不卡| 亚洲二区在线视频| 欧美日韩dvd在线观看| 亚洲va欧美va人人爽| 欧美一区二区三区公司| 精品一区二区在线播放| 久久欧美一区二区| 成人福利视频在线看| 亚洲天堂网中文字| 欧美日韩国产综合久久| 视频一区欧美日韩| 精品日韩99亚洲| 高清不卡一二三区| 亚洲天堂av一区| 欧美肥大bbwbbw高潮| 日本 国产 欧美色综合| 国产欧美日韩在线看| 91视频精品在这里| 日本成人在线看| 国产精品视频yy9299一区| 色视频成人在线观看免| 老司机精品视频导航| 中文一区在线播放| 欧美老肥妇做.爰bbww视频| 九九国产精品视频|