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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hwdrv_apci3200.c

?? 最新版comedi的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
      /*******************************/      /** Read number of gain value **/      /*******************************/      i_AddiHeaderRW_ReadEeprom (1, //i_NbOfWordsToRead				 dw_PCIBoardEepromAddress,				 w_AnalogInputComponentAddress + 0x44, // Number of gain value				 &w_NumberOfGainValue);      w_NumberOfGainValue = w_NumberOfGainValue & 0xFF;      /***********************************/      /** Compute single header address **/      /***********************************/      w_SingleHeaderAddress = w_AnalogInputComponentAddress + 0x46 + (((w_NumberOfGainValue / 16) + 1) * 2) + (6 * w_NumberOfGainValue) + (4 * (((w_NumberOfGainValue / 16) + 1) * 2));      /********************************************/      /** Read current sources value for input 1 **/      /********************************************/      i_AddiHeaderRW_ReadEeprom (1, //i_NbOfWordsToRead				 dw_PCIBoardEepromAddress,				 w_SingleHeaderAddress ,//w_EepromStartAddress: Single header address				 &w_SingleHeaderSize);      w_SingleHeaderSize = w_SingleHeaderSize >> 4;      /*************************************/      /** Read gain factor for the module **/      /*************************************/      w_GainFactorAddress = w_AnalogInputComponentAddress;       for (w_GainIndex = 0; w_GainIndex < w_NumberOfGainValue; w_GainIndex++)	{	  /************************************/	  /** Read gain value for the module **/ 	  /************************************/	  i_AddiHeaderRW_ReadEeprom (1, //i_NbOfWordsToRead				     dw_PCIBoardEepromAddress,				     w_AnalogInputComponentAddress + 70 + (2 * (1 + ( w_NumberOfGainValue / 16))) + (0x02 * w_GainIndex), // Gain value				     &w_GainValue);	  BoardInformations->s_Module [w_ModulCounter].w_GainValue [w_GainIndex] = w_GainValue;               #             ifdef PRINT_INFO 	  printk ("\n Gain value = %d", BoardInformations->s_Module [w_ModulCounter].w_GainValue [w_GainIndex]);#             endif	  /*************************************/	  /** Read gain factor for the module **/	  /*************************************/	  i_AddiHeaderRW_ReadEeprom (2, //i_NbOfWordsToRead				     dw_PCIBoardEepromAddress,				     w_AnalogInputComponentAddress + 70 + ((2 * w_NumberOfGainValue) + (2 * (1 + ( w_NumberOfGainValue / 16)))) + (0x04 * w_GainIndex), // Gain factor				     w_GainFactorValue);                       	  BoardInformations->s_Module [w_ModulCounter].ul_GainFactor [w_GainIndex] = (w_GainFactorValue [1] << 16) + w_GainFactorValue [0]; #             ifdef PRINT_INFO               	  printk ("\n w_GainFactorValue [%d] = %lu", w_GainIndex, BoardInformations->s_Module [w_ModulCounter].ul_GainFactor [w_GainIndex]);                                   #             endif	}      /***************************************************************/      /** Read current source value for each channels of the module **/      /***************************************************************/      for (w_Input = 0; w_Input < w_NumberOfInputs; w_Input++)	{	  /********************************************/	  /** Read current sources value for input 1 **/	  /********************************************/	  i_AddiHeaderRW_ReadEeprom (2, //i_NbOfWordsToRead				     dw_PCIBoardEepromAddress,				     (w_Input * w_SingleHeaderSize) + w_SingleHeaderAddress + 0x0C,				     w_CurrentSources);              	  /************************************/	  /** Save the current sources value **/	  /************************************/	  BoardInformations->s_Module [w_ModulCounter].ul_CurrentSource [w_Input] = (w_CurrentSources [0] + ((w_CurrentSources [1] & 0xFFF) << 16));   #             ifdef PRINT_INFO 	  printk ("\n Current sources [%d] = %lu", w_Input, BoardInformations->s_Module [w_ModulCounter].ul_CurrentSource [w_Input]);                      #             endif 	}                  /***************************************/      /** Read the CJC current source value **/      /***************************************/      i_AddiHeaderRW_ReadEeprom (2, //i_NbOfWordsToRead				 dw_PCIBoardEepromAddress,				 (w_Input * w_SingleHeaderSize) + w_SingleHeaderAddress + 0x0C,				 w_CurrentSources);	         /************************************/      /** Save the current sources value **/      /************************************/      BoardInformations->s_Module [w_ModulCounter].ul_CurrentSourceCJC = (w_CurrentSources [0] + ((w_CurrentSources [1] & 0xFFF) << 16));   	       #          ifdef PRINT_INFO       printk ("\n Current sources CJC = %lu", BoardInformations->s_Module [w_ModulCounter].ul_CurrentSourceCJC);                      #          endif    }}INT i_APCI3200_GetChannelCalibrationValue (comedi_device *dev, unsigned int ui_Channel_num, lsampl_t *CJCCurrentSource, 					   lsampl_t *ChannelCurrentSource, 					   lsampl_t *ChannelGainFactor) {   int i_DiffChannel = 0;  int i_Module = 0; #ifdef PRINT_INFO   printk ("\n Channel = %u", ui_Channel_num);#endif  //Test if single or differential mode     if (s_BoardInfos [dev->minor].i_ConnectionType == 1)    {             //if diff         if((ui_Channel_num >=0) && (ui_Channel_num <=1))	i_DiffChannel=ui_Channel_num, i_Module = 0;       else	if((ui_Channel_num >=2) && (ui_Channel_num <=3))	  i_DiffChannel=ui_Channel_num-2, i_Module = 1; 	else	  if((ui_Channel_num >=4) && (ui_Channel_num <=5))	    i_DiffChannel=ui_Channel_num-4, i_Module = 2; 	  else	    if((ui_Channel_num >=6) && (ui_Channel_num <=7))	      i_DiffChannel=ui_Channel_num-6, i_Module = 3;           }  else    {            // if single      if((ui_Channel_num == 0) || (ui_Channel_num == 1))	i_DiffChannel=0, i_Module = 0;       else	if((ui_Channel_num == 2) || (ui_Channel_num == 3))	  i_DiffChannel=1, i_Module = 0; 	else      	  if((ui_Channel_num == 4) || (ui_Channel_num == 5))	    i_DiffChannel=0, i_Module = 1; 	  else	    if((ui_Channel_num == 6) || (ui_Channel_num == 7))	      i_DiffChannel=1, i_Module = 1;       	    else      	      if((ui_Channel_num == 8) || (ui_Channel_num == 9))		i_DiffChannel=0, i_Module = 2; 	      else		if((ui_Channel_num == 10) || (ui_Channel_num == 11))		  i_DiffChannel=1, i_Module = 2;   		else      		  if((ui_Channel_num == 12) || (ui_Channel_num == 13))		    i_DiffChannel=0, i_Module = 3; 		  else		    if((ui_Channel_num == 14) || (ui_Channel_num == 15))		      i_DiffChannel=1, i_Module = 3;                      }                                    //Test if thermocouple or RTD mode  *CJCCurrentSource = s_BoardInfos [dev->minor].s_Module[i_Module].ul_CurrentSourceCJC;#ifdef PRINT_INFO   printk ("\n CJCCurrentSource = %lu", *CJCCurrentSource);#endif        *ChannelCurrentSource = s_BoardInfos [dev->minor].s_Module[i_Module].ul_CurrentSource [i_DiffChannel];#ifdef PRINT_INFO 	   printk ("\n ChannelCurrentSource = %lu", *ChannelCurrentSource);#endif	   //      }      //   }                  //Channle gain factor   *ChannelGainFactor = s_BoardInfos [dev->minor].s_Module[i_Module].ul_GainFactor [s_BoardInfos [dev->minor].i_ADDIDATAGain];	  #ifdef PRINT_INFO      printk ("\n ChannelGainFactor = %lu", *ChannelGainFactor);  #endif     //End JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values        return (0);      }//End JK 21.10.2004: APCI-3200 / APCI-3300 Reading of EEPROM values/*  +----------------------------------------------------------------------------+  | Function   Name   : int i_APCI3200_ReadDigitalInput                       |  |			  (comedi_device *dev,comedi_subdevice *s,               |   |                      comedi_insn *insn,lsampl_t *data)                     |  +----------------------------------------------------------------------------+  | Task              : Read  value  of the selected channel or port           |  +----------------------------------------------------------------------------+  | Input Parameters  : comedi_device *dev      : Driver handle                |  |                     UINT ui_NoOfChannels    : No Of Channels To read  for Port     Channel Numberfor single channel  |                     UINT data[0]            : 0: Read single channel  1: Read port value     data[1]              Port number         +----------------------------------------------------------------------------+  | Output Parameters :	--	data[0] :Read status value  +----------------------------------------------------------------------------+  | Return Value      : TRUE  : No error occur                                 |  |		            : FALSE : Error occur. Return the error          |  |			                                                         |  +----------------------------------------------------------------------------+*/INT i_APCI3200_ReadDigitalInput(comedi_device *dev,comedi_subdevice *s,comedi_insn *insn,lsampl_t *data) {   UINT ui_Temp=0;  UINT ui_NoOfChannel=0;  ui_NoOfChannel=CR_CHAN(insn->chanspec);  ui_Temp=data[0];  *data=inl(devpriv->i_IobaseReserved);      if  (ui_Temp==0)    {      *data=(*data >> ui_NoOfChannel)&0x1;     } //if  (ui_Temp==0)  else    {      if  (ui_Temp==1)	{	  if(data[1] < 0 || data[1] >1)	    {	      printk("\nThe port number is in error\n");	      return -EINVAL;	    }//if(data[1] < 0 || data[1] >1)	  switch( ui_NoOfChannel)	    {	    case 2:	      *data=(*data >>(2*data[1]))&0x3;  	      break;	    case 3:	      *data=(*data & 15 ); 	      break;	    default:	      comedi_error(dev," chan spec wrong");	      return -EINVAL;   // "sorry channel spec wrong "                   	    }//switch(ui_NoOfChannels)    	}//if  (ui_Temp==1)      else	{	  printk("\nSpecified channel not supported \n");	}//elseif  (ui_Temp==1)    }    return insn->n;}/*  +----------------------------------------------------------------------------+  | Function   Name   : int i_APCI3200_ConfigDigitalOutput                     |  |			  (comedi_device *dev,comedi_subdevice *s,				 |   |                      comedi_insn *insn,lsampl_t *data)                     |  +----------------------------------------------------------------------------+  | Task              : Configures The Digital Output Subdevice.               |  +----------------------------------------------------------------------------+  | Input Parameters  : comedi_device *dev : Driver handle                     |  |			  data[0]  :1  Memory enable  0  Memory Disable														   +----------------------------------------------------------------------------+  | Output Parameters :	--													 |  +----------------------------------------------------------------------------+  | Return Value      : TRUE  : No error occur                                 |  |		            : FALSE : Error occur. Return the error			 |  |																	 |  +----------------------------------------------------------------------------+*/int i_APCI3200_ConfigDigitalOutput(comedi_device *dev,comedi_subdevice *s,comedi_insn *insn,lsampl_t *data){   if  ( (data[0]!=0) && (data[0]!=1) )     {         comedi_error(dev,"Not a valid Data !!! ,Data should be 1 or 0\n");        return -EINVAL;    }//if  ( (data[0]!=0) && (data[0]!=1) )   if  (data[0])    {      devpriv->b_OutputMemoryStatus = ADDIDATA_ENABLE ;     }// if  (data[0])  else    {      devpriv->b_OutputMemoryStatus = ADDIDATA_DISABLE;    }//else if  (data[0])  return insn->n;}/*  +----------------------------------------------------------------------------+  | Function   Name   : int i_APCI3200_WriteDigitalOutput                      |  |			  (comedi_device *dev,comedi_subdevice *s,				 |   |                      comedi_insn *insn,lsampl_t *data)                     |  +----------------------------------------------------------------------------+  | Task              : writes To the digital Output Subdevice                 |  +----------------------------------------------------------------------------+  | Input Parameters  : comedi_device *dev      : Driver handle                |  |                     comedi_subdevice *s     : Subdevice Pointer            |    |                     comedi_insn *insn       : Insn Structure Pointer       |    |                     lsampl_t *data          : Data Pointer contains        |  |                                          configuration parameters as below |  |                     data[0]             :Value to output  data[1]             : 0 o/p single channel  1 o/p port  data[2]             : port no  data[3]             :0 set the digital o/p on  1 set the digital o/p off 	  +----------------------------------------------------------------------------+  | Output Parameters :	--													 |  +----------------------------------------------------------------------------+

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久道久久综合中文字幕 | 精品国产伦一区二区三区免费| 极品尤物av久久免费看| 综合分类小说区另类春色亚洲小说欧美| 欧美日韩国产大片| 成人免费毛片app| 九九精品一区二区| 亚洲国产一区视频| 国产欧美一区二区精品忘忧草 | 91久久久免费一区二区| 狠狠色狠狠色合久久伊人| 亚洲一二三区在线观看| 中文字幕第一页久久| 精品福利av导航| 在线成人午夜影院| 91国在线观看| 91亚洲精华国产精华精华液| 国产一区二区不卡老阿姨| 亚洲成av人片一区二区梦乃 | 国产精品理伦片| 精品国产一区二区亚洲人成毛片| 欧美日韩亚州综合| 在线视频一区二区三| 福利一区二区在线| 国产成人亚洲精品青草天美| 久久精品国产77777蜜臀| 日日摸夜夜添夜夜添精品视频| 亚洲综合一区二区| 亚洲欧美经典视频| 一区二区三区在线高清| 亚洲精品国产a久久久久久| 亚洲天堂a在线| 国产精品成人在线观看| 国产精品久久久久久久浪潮网站| 欧美α欧美αv大片| 7777精品伊人久久久大香线蕉完整版 | 一本色道a无线码一区v| 成人免费看的视频| 成人午夜伦理影院| 国产精品白丝av| 蜜臀av国产精品久久久久| 亚洲不卡在线观看| 一区二区三区四区精品在线视频| 国产精品久久久久久福利一牛影视| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩激情一区二区| 91蝌蚪porny| 91久久精品一区二区三区| 91在线观看污| 91免费视频网址| 色综合天天综合网国产成人综合天| 国产成+人+日韩+欧美+亚洲| 国产一区二区三区国产| 国内精品视频一区二区三区八戒| 久久疯狂做爰流白浆xx| 紧缚捆绑精品一区二区| 国产美女精品人人做人人爽| 国产福利精品导航| 岛国精品在线播放| 99久久久精品免费观看国产蜜| 成人一道本在线| 精品一区二区免费视频| 美女一区二区视频| 日韩高清在线不卡| 国产原创一区二区| 99视频在线精品| 成人教育av在线| 91美女视频网站| 欧美系列一区二区| 欧美精品国产精品| 日韩午夜小视频| 精品久久国产字幕高潮| 国产亚洲欧洲997久久综合| 欧美韩国日本不卡| 亚洲另类中文字| 日韩中文字幕亚洲一区二区va在线| 石原莉奈在线亚洲二区| 九色综合狠狠综合久久| 国产jizzjizz一区二区| 99久久精品情趣| 欧洲国内综合视频| 91精品欧美一区二区三区综合在| 欧美另类高清zo欧美| 精品国产人成亚洲区| 亚洲国产经典视频| 一区二区三区不卡在线观看 | 亚洲三级电影网站| 亚洲福利视频一区二区| 国产成人在线免费观看| 色婷婷激情一区二区三区| 91精品国产综合久久久久久| 欧美成人vr18sexvr| 最新国产成人在线观看| 午夜一区二区三区在线观看| 狂野欧美性猛交blacked| 成人久久久精品乱码一区二区三区| 在线亚洲一区二区| 欧美成人激情免费网| 国产精品免费视频网站| 男人的天堂久久精品| a级精品国产片在线观看| 欧美日韩精品一区二区三区四区| 日韩欧美国产综合一区| 中文字幕一区在线观看| 日韩不卡在线观看日韩不卡视频| 从欧美一区二区三区| 欧美日韩不卡在线| 中文字幕av一区二区三区| 日韩电影在线观看电影| 成人午夜又粗又硬又大| 91精品一区二区三区久久久久久| 国产精品福利一区| 精油按摩中文字幕久久| 日本电影亚洲天堂一区| 久久九九久精品国产免费直播| 亚洲综合一二区| 懂色av一区二区在线播放| 日韩亚洲欧美高清| 亚洲一二三四在线观看| 成人aa视频在线观看| 日韩欧美一二三四区| 亚洲国产精品自拍| 国产精品一区不卡| 在线播放日韩导航| 亚洲欧美国产三级| 91麻豆福利精品推荐| 国产日韩欧美电影| 六月丁香婷婷色狠狠久久| 欧美三级韩国三级日本一级| 亚洲视频中文字幕| 国产精品一区在线| 欧美成人三级电影在线| 天堂va蜜桃一区二区三区| jizz一区二区| 久久久久久久av麻豆果冻| 激情综合网最新| 欧美一区二区精品在线| 天天操天天色综合| 欧美日韩国产综合一区二区| 亚洲综合色网站| 一本一道久久a久久精品综合蜜臀| 中文字幕精品一区二区三区精品| 国内精品久久久久影院色| 欧美成人艳星乳罩| 久久99久久99| wwww国产精品欧美| 国模娜娜一区二区三区| 精品99999| 国产一区二区三区在线观看免费| 日韩精品一区二区三区老鸭窝| 日本在线不卡一区| 91精品免费在线观看| 蜜臀精品久久久久久蜜臀| 欧美理论电影在线| 免费日韩伦理电影| 日韩精品影音先锋| 国内精品伊人久久久久av影院| 精品国产区一区| 国产福利一区在线| 国产精品午夜久久| 91亚洲男人天堂| 一区二区三区四区精品在线视频| 91国产丝袜在线播放| 亚洲国产综合人成综合网站| 日韩欧美一区二区免费| 国产中文字幕一区| 国产区在线观看成人精品| 国产精品99久久久久久有的能看 | 石原莉奈一区二区三区在线观看| 欧美一卡2卡3卡4卡| 国内精品伊人久久久久av影院| 久久精品一区二区三区不卡牛牛| 精品一区二区久久| 国产精品网曝门| 欧美综合久久久| 日韩av高清在线观看| 欧美精品一区二区久久婷婷| 国产精品中文字幕欧美| 亚洲欧美日韩在线不卡| 欧美卡1卡2卡| 国产原创一区二区| 中文字幕永久在线不卡| 大尺度一区二区| 日本亚洲三级在线| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 久久成人综合网| 欧美激情在线一区二区三区| 色综合色综合色综合色综合色综合 | 欧美日韩国产另类一区| 久久69国产一区二区蜜臀| 国产精品视频在线看| 欧美性视频一区二区三区| 精品亚洲成a人在线观看| 亚洲国产精品二十页| 日本久久一区二区三区| 国产乱码精品1区2区3区| 一级精品视频在线观看宜春院| 日韩精品一区二区三区三区免费| 成人美女在线视频| 秋霞国产午夜精品免费视频|