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

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

?? hamaro_cx24108.c

?? 機頂盒Hamaro解調器驅動。包含自動搜臺
?? C
?? 第 1 頁 / 共 5 頁
字號:

}  /* __HAMARO_TUNER_CX24108_first_edgeone() */


/*******************************************************************************************************/
/* _HAMARO_TUNER_CX24108_pll_status( */
/*******************************************************************************************************/
BOOL  _HAMARO_TUNER_CX24108_pll_status(       /* reads current tuner pll lock status */
HAMARO_NIM   *nim,                            /* nim pointer */
BOOL  *locked)                         /* BOOL pointer, where tuner pll lock status is returned */
{
  unsigned long  ulRegVal;

  /* CR9507, add 1ms delay in order to get the correct lock detector status. */
  HAMARO_OS_Wait(nim,HAMARO_TUNER_LDWAIT);

  /* read the demod's tuner lock indicator pin */
  if (HAMARO_RegisterRead(nim,CX2430X_TUNPLLLOCK,&ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  return(False);

  if (ulRegVal == 0UL)  *locked = False;
  else  *locked = True;

  return(True);

}  /* _HAMARO_TUNER_CX24108_pll_status() */


/*******************************************************************************************************/
/* _HAMARO_TUNER_CX24108_set_refdivider() */
/*******************************************************************************************************/
BOOL     _HAMARO_TUNER_CX24108_set_refdivider(/* function to set the ref divider value prog'd to the tuner */
HAMARO_NIM      *nim,                         /* pointer to nim (nim->RefDivider is set within nim) */
HAMARO_RDIVVAL  rvalue)                       /* ref divider value (10,20...) */
{
  int  i;

  static unsigned char  _rvalue[] = {0x03,0x02, 0x01, 0x00};  /* value programmed to tuner */
  static HAMARO_RDIVVAL        rvalue_match[] = {HAMARO_RDIV_10,HAMARO_RDIV_20,HAMARO_RDIV_40,HAMARO_RDIV_UNDEF};

  /* find the correct rvalue setting for the tuner */
  for (i = 0 ; rvalue_match[i] != HAMARO_RDIV_UNDEF ; i++)
  {
    if (rvalue_match[i] == rvalue)
    {
      nim->tuner.cx24108.RefDivider = _rvalue[i];
      return(True);
    }
  }

  /* unable to equate rvalue to tuner setting */
  HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_CXDATA);
  return(False);

}  /* _HAMARO_TUNER_CX24108_set_refdivider() */


/*******************************************************************************************************/
/* __HAMARO_TUNER_CX24108_set_freq() */
/*******************************************************************************************************/
BOOL           _HAMARO_TUNER_CX24108_set_freq(/* set tuner to a desired frequency */
HAMARO_NIM            *nim,                   /* pointer to nim */
unsigned long  freq)                   /* frequency in khz to set tuner to */
{
  unsigned int   bandbin;
  unsigned int   vcodivbin;

  unsigned long  ulRegVal;
  unsigned long  nar_str;              /* string of bits to be written to tuner */
  unsigned long  tunpll;
  unsigned char  loop;
  
  BOOL     rtn1;
  BOOL     rtn2;
  BOOL     rtn3;
  BOOL     lock;

  HAMARO_VCOSET  vcoset;             /* vco number via VCOSET enum:  HAMARO_VCO1D2 (aka VCO #1) .. HAMARO_VCO8D4 (aka VCO #11) */

  /* default:  set the frequency, rdiv, vcodiv */
  nim->pll_frequency = freq;
  nim->tuner.cx24108.vcodiv = HAMARO_VCODIV2;

  /* special op to set freq 1mhz high */
  _HAMARO_TUNER_CX24108_io_special(nim);

  /* set the tuner band-select bit settings, plus set add'l tuner settings */
  rtn1 = _HAMARO_TUNER_CX24108_band_info(nim,nim->pll_frequency,&bandbin,&vcodivbin,&vcoset,
    &nim->tuner.cx24108.vcodiv,&nim->tuner.cx24108.vcono,&tunpll);
  
  /* set VCO divider and band-select data */
  ulRegVal = vcodivbin;
  ulRegVal <<= 9;
  ulRegVal |= bandbin;
  rtn2 = _HAMARO_TUNER_CX24108_io(nim,HAMARO_CX24108_BAND_PROG,ulRegVal);

  /* write the pll setting to the tuner */
  nar_str = _HAMARO_TUNER_CX24108_calc_pll(nim);

  ulRegVal = nar_str;
  ulRegVal |= ((unsigned long)nim->tuner.cx24108.RefDivider<<17);   /* ref divider programming bits */
  ulRegVal |= ((unsigned long)nim->tuner.cx24108.CPCPolarity<<16);  /* charge pump polarity */
  ulRegVal |= (((unsigned long)nim->tuner.cx24108.CPCCurrent&0x03UL)<<HAMARO_CX24108_CPC_START);
  
  rtn3 = _HAMARO_TUNER_CX24108_io(nim,HAMARO_CX24108_PLL_PROG,ulRegVal);
  
  if (rtn1 != True || rtn2 != True || rtn3 != True)  return(False);

  loop = 0;
  do 
  {
	  if (_HAMARO_TUNER_CX24108_pll_status(nim, &lock) == False)
	  {
		  return (False);
	  }
	  if (lock == True)
	  {
		  break;
	  }
	  loop++;
  } while (loop < 3);

  if (lock == False)
  {
	  return (False);
  }

  return(True);
}  /* __HAMARO_TUNER_CX24108_set_freq() */


/*******************************************************************************************************/
/* _HAMARO_TUNER_CX24108_calc_pll() */
/*******************************************************************************************************/
unsigned long  _HAMARO_TUNER_CX24108_calc_pll(/* function to calc pll settings (n,a) using bcd functions */
HAMARO_NIM            *nim)                   /* nim pointer */
{
  unsigned long  NA;

  NA = _HAMARO_TUNER_CX24108_calc_pllNA(nim);

  /* save the last NAR settings */
  nim->tuner.cx24108.N = (int)((NA&0x3fffUL)>>5UL);
  nim->tuner.cx24108.A = (int)(NA&0x1fUL);

  /* this calculated N, A value is what is physically sent to the tuner                      */
  /* the tuner has a feature where when A is zero, it tunes significantly above              */
  /* the calculated PLL freq.  DO NOT USE THIS NA return value to perform calculations       */ 

  /* if the a portion of NA is zero, subtract 1 to n portion */
  if ((NA&0x1fUL) == 0UL)
  {
    NA -= 32UL;
  }

  return(NA);

}  /* _HAMARO_TUNER_CX24108_calc_pll() */


/*******************************************************************************************************/
/* _HAMARO_TUNER_CX24108_calc_pllNA() */
/*******************************************************************************************************/
unsigned long  _HAMARO_TUNER_CX24108_calc_pllNA(      /* function to calc pll settings (n,a) using bcd functions */
HAMARO_NIM            *nim)                           /* nim pointer */
{
  unsigned long  NA;

  /* set freq to a default setting, if not presently set, test xtal for zero before divide (CR 7452) */
  if (nim->pll_frequency == 0UL)  nim->pll_frequency = HAMARO_NIM_DEFAULT_FREQ;
  if (nim->tuner_crystal_freq == 0UL)  nim->tuner_crystal_freq = HAMARO_NIM_DEFAULT_XTAL;

  NA = (nim->pll_frequency / 100UL) * ((unsigned long)nim->tuner.cx24108.R * (unsigned long)nim->tuner.cx24108.vcodiv);
  NA /= ((nim->tuner_crystal_freq / HAMARO_M) * 2UL);
  NA += 5UL;
  NA /= 10UL;

  return(NA);

}  /* _HAMARO_TUNER_CX24108_calc_pllNA() */


/*******************************************************************************************************/
/* _HAMARO_TUNER_CX24108_calculateNAR() */
/*******************************************************************************************************/
BOOL           _HAMARO_TUNER_CX24108_CalculateNAR(      /* function to calc pll settings (n,a) using bcd functions */
HAMARO_NIM            *nim,                             /* nim pointer */
unsigned long  Fdesired,                         /* desired frequency */
HAMARO_RDIVVAL        R,                                /* proposed reference divider */
unsigned int   *N,                               /* returned N value */
unsigned int   *A)                               /* returned A value */
{
  unsigned long  NA;
  HAMARO_BCDNO          bcd;

  /* calculate tuner PLL settings: */
  HAMARO_BCD_set(&bcd,Fdesired);
  HAMARO_BCD_mult(&bcd,((unsigned long)R * (unsigned long)nim->tuner.cx24108.vcodiv * HAMARO_M));
  HAMARO_BCD_div(&bcd,(nim->tuner_crystal_freq * 2UL));
 
  NA = HAMARO_BCD_out(&bcd);
  NA += 500UL;
  NA /= 1000UL;

  *N = (int)((NA&0x3fffUL)>>5UL);
  *A = (int)(NA&0x1fUL);

  return(True);

}  /* _HAMARO_TUNER_CX24108_CalculateNAR() */


/*******************************************************************************************************/
/* _HAMARO_TUNER_CX24108_SetGainSettings() */
/*******************************************************************************************************/
BOOL           _HAMARO_TUNER_CX24108_SetGainSettings( /* function to set the VCA, VGA settings for CX24108 tuner */
HAMARO_NIM            *nim,                           /* pointer to nim */
unsigned long  symbolrateksps)                 /* symbol rate determines the VCA, VGA settings */
{
   HAMARO_VCASLOPE  VCASlope;
   HAMARO_VCAOFFSET VCAOffset;
   HAMARO_VGA1VALS  VGA1Offset;
   HAMARO_VGA2VALS  VGA2Offset;

   unsigned long  ulRegVal;
   int idx;

   /* get tuner's VCA and VGA settings from HAMARO_NIM for the given symbol rate */
   if (symbolrateksps < 5000UL)
   {
      idx = HAMARO_CX24108_MSPS_1_TO_5;
   }
   else if (symbolrateksps < 15000UL)
   {
      idx = HAMARO_CX24108_MSPS_5_TO_15;
   }
   else
   {
      idx = HAMARO_CX24108_MSPS_15_TO_45;
   }

   VCASlope = nim->tuner.cx24108.tunerparms.SLP[idx].VCASlope;
   VCAOffset = nim->tuner.cx24108.tunerparms.SLP[idx].VCAOffset;
   VGA1Offset = nim->tuner.cx24108.tunerparms.SLP[idx].VGA1Offset;
   VGA2Offset = nim->tuner.cx24108.tunerparms.SLP[idx].VGA2Offset;

   /* program tuner's VCA settings */
   ulRegVal =  (unsigned long)VCASlope | ((unsigned long)VCAOffset << 9);
   if (_HAMARO_TUNER_CX24108_io(nim,HAMARO_CX24108_VCA_PROG,ulRegVal) == False)
   {
      return (False);
   }

   /* program tuner's VGA settings */
   ulRegVal = (unsigned long)VGA1Offset | ((unsigned long)VGA2Offset << 9);
   if (_HAMARO_TUNER_CX24108_io(nim,HAMARO_CX24108_VGA_PROG,ulRegVal) == False)
   {
      return (False);
   }

   return (True);

}  /* _HAMARO_TUNER_CX24108_SetGainSettings() */


/*******************************************************************************************************/
/* _HAMARO_TUNER_CX24108_calc_Fpll() */
/*******************************************************************************************************/
unsigned long  _HAMARO_TUNER_CX24108_calc_Fpll(       /* function to calculate the tuner pll freq using N,A reg settings */
HAMARO_NIM            *nim,                           /* pointer to nim */
int            na)                             /* N,A register (9MSB=N, 5LSB=a register) */
{
  unsigned long  ulTemp;
  HAMARO_RDIVVAL   r = nim->tuner.cx24108.R;

  if (r != HAMARO_RDIV_10 && r != HAMARO_RDIV_20 && r != HAMARO_RDIV_40)  r = HAMARO_RDIV_10;

  ulTemp = (nim->tuner_crystal_freq / (unsigned long)r) * ((unsigned long)na);
  if (nim->tuner.cx24108.vcodiv != HAMARO_VCODIV2)
  {
    ulTemp++;
    ulTemp /= 2UL;
  }

  return(ulTemp);

}  /* _HAMARO_TUNER_CX24108_calc_Fpll() */



/*******************************************************************************************************/
/* __HAMARO_TUNER_CX24108_freq_manual() */
/*******************************************************************************************************/
BOOL           _HAMARO_TUNER_CX24108_freq_manual(     /* set tuner to a desired frequency */
HAMARO_NIM            *nim,                           /* pointer to nim */
unsigned long  freq)                           /* frequency in khz to set tuner to */
{
  unsigned int   n;
  unsigned long  ulRegVal;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜在线观看| 久久er99热精品一区二区| 国产一区二区看久久| 日韩欧美一级二级三级| 亚洲精品ww久久久久久p站| 波多野结衣精品在线| 久久日韩精品一区二区五区| 美女看a上一区| 久久夜色精品国产欧美乱极品| 欧美a级一区二区| 欧美日韩一区二区三区不卡| 最新久久zyz资源站| 国产不卡视频在线播放| 欧美一区二区性放荡片| 天天色综合天天| 久久久久99精品国产片| 欧美色视频在线观看| 玉米视频成人免费看| 精品欧美乱码久久久久久1区2区 | 成人av网站大全| 欧美韩国日本综合| 91成人看片片| 九九热在线视频观看这里只有精品| 久久亚洲精品国产精品紫薇| 99精品国产一区二区三区不卡| 亚洲欧美日韩国产手机在线| 欧美日韩一区 二区 三区 久久精品| 香蕉久久夜色精品国产使用方法| 欧美一区二区三区在线视频| 不卡一区在线观看| 视频在线观看一区二区三区| 欧美一卡二卡三卡| 国产成人综合在线| 日本大胆欧美人术艺术动态| 久久网站热最新地址| 99精品国产一区二区三区不卡| 极品美女销魂一区二区三区| 国产精品欧美久久久久一区二区| 99re热视频这里只精品| 国产美女精品一区二区三区| 五月天欧美精品| 亚洲一区国产视频| 一区二区三区高清不卡| 亚洲视频免费在线观看| 国产肉丝袜一区二区| 日韩一区二区视频在线观看| 欧美亚洲丝袜传媒另类| eeuss鲁片一区二区三区| 老汉av免费一区二区三区 | 欧美日韩精品三区| 欧美三级乱人伦电影| 91在线观看下载| av电影天堂一区二区在线| 国产一区二区网址| 国产精品一区专区| 麻豆成人91精品二区三区| 无吗不卡中文字幕| 亚洲最大成人网4388xx| 亚洲欧洲日韩女同| 亚洲自拍偷拍综合| 国产精品成人免费在线| 欧美精品久久99久久在免费线| aaa欧美大片| 精品三级av在线| 欧美男生操女生| 精品国产精品一区二区夜夜嗨| 久久婷婷国产综合精品青草| 精品国产凹凸成av人导航| 欧美一级夜夜爽| 欧美成人精精品一区二区频| 欧美变态口味重另类| 久久青草国产手机看片福利盒子 | 99精品视频中文字幕| 欧美性色黄大片| 欧美亚男人的天堂| 日韩一区二区在线观看视频 | 久久99久久久欧美国产| 懂色一区二区三区免费观看| 99视频在线精品| 欧美老肥妇做.爰bbww| 久久久一区二区三区| 亚洲日本中文字幕区| 亚洲电影在线免费观看| 国内偷窥港台综合视频在线播放| 色综合久久综合网欧美综合网| 精品国产伦一区二区三区观看体验| 欧美精品一区二区三区四区 | 欧美日韩电影在线播放| 国产三级欧美三级日产三级99 | 美国欧美日韩国产在线播放| 欧美网站大全在线观看| 国产精品久久久久影院亚瑟| 国内久久婷婷综合| 精品99一区二区三区| 青娱乐精品在线视频| 欧美三区在线视频| 悠悠色在线精品| av在线播放不卡| 国产精品欧美久久久久无广告| 成人av高清在线| 久久日韩精品一区二区五区| 日本成人在线不卡视频| 欧美优质美女网站| 日韩伦理免费电影| 亚洲综合无码一区二区| 波多野结衣中文一区| 久久精品亚洲一区二区三区浴池 | 亚洲成精国产精品女| 在线精品观看国产| 午夜视频一区二区| 精品女同一区二区| 99久久婷婷国产| 亚洲综合在线五月| 欧美一级艳片视频免费观看| 亚洲精品乱码久久久久久黑人 | 国产精品亲子伦对白| 亚洲成人午夜电影| 日韩午夜激情免费电影| 国产精品一区二区在线观看网站| 欧美一区二区久久| 99久久免费精品高清特色大片| 亚洲免费观看高清完整版在线| 97久久精品人人做人人爽| 午夜精品久久久久久久久久久| 欧美日韩国产精选| 久久se这里有精品| 中文字幕 久热精品 视频在线 | 欧美国产欧美综合| 欧美老肥妇做.爰bbww视频| 欧美极品少妇xxxxⅹ高跟鞋| 国产激情一区二区三区四区| 国产精品家庭影院| 91精品国产综合久久久久久久久久| av综合在线播放| 午夜精品福利视频网站| 亚洲欧洲成人精品av97| 精品精品欲导航| 波多野结衣在线一区| 久久99精品久久久久久久久久久久| 亚洲日本va在线观看| 91精品国产综合久久久蜜臀图片| 国产在线国偷精品免费看| 中文字幕av一区二区三区 | 亚洲精品午夜久久久| 国产亚洲欧美中文| 日韩精品一区二区三区三区免费| 不卡一二三区首页| 麻豆国产精品777777在线| 中文字幕日韩精品一区| 久久丝袜美腿综合| 91黄色免费看| 99精品久久只有精品| 国产69精品久久久久毛片 | 777xxx欧美| 欧美视频一区二区在线观看| 国产黑丝在线一区二区三区| 国产传媒日韩欧美成人| 国产电影一区二区三区| 婷婷久久综合九色综合伊人色| 99久久精品国产麻豆演员表| 九九视频精品免费| 欧美挠脚心视频网站| 亚洲福利电影网| 欧美一级高清片在线观看| 免费人成精品欧美精品 | 91福利精品视频| 一区二区三区四区在线播放| 91精品福利在线| 青娱乐精品视频在线| 精品播放一区二区| 九九精品一区二区| 中文字幕亚洲综合久久菠萝蜜| voyeur盗摄精品| 亚洲精品成人在线| 69成人精品免费视频| 激情久久久久久久久久久久久久久久| 精品99一区二区| www.久久久久久久久| 亚洲综合色婷婷| 精品免费日韩av| 高清国产午夜精品久久久久久| 中文字幕在线观看一区二区| 97久久人人超碰| 青椒成人免费视频| 久久精品欧美一区二区三区不卡 | 日本欧美一区二区在线观看| 91精品国产高清一区二区三区| 视频一区国产视频| 久久久久久免费网| 色爱区综合激月婷婷| 免费一区二区视频| 国产精品无圣光一区二区| 日本乱人伦一区| 国产麻豆日韩欧美久久| 亚洲你懂的在线视频| 久久精品在这里| 欧美三级视频在线播放| 成人网在线免费视频| 亚洲成人一区在线| 亚洲天天做日日做天天谢日日欢 |