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

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

?? hamaro_drv.c

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


/*******************************************************************************************************/
/* HAMARO_DRIVER_symbolrate_in() */
/*******************************************************************************************************/
long           HAMARO_DRIVER_symbolrate_in(   /* function to perform common symbol rate computation */
unsigned long  symbolrate,             /* symbol rate (in) */
unsigned long  sampleratekhz)          /* sample rate in hz (in) */
{
  static HAMARO_BCDNO  bcd;
  unsigned long  computed_symbolrate;
  
  /* compute symbolrate programmed to the demod: (symbolrate * 2^23) / rounded(samplerate/1000) */
  HAMARO_BCD_set(&bcd,(symbolrate*1000UL)+500UL);
  HAMARO_BCD_mult(&bcd,(long)(0x01L<<23L));
  HAMARO_BCD_div(&bcd,(sampleratekhz));

  /* symbol rate  */
  computed_symbolrate = HAMARO_BCD_out(&bcd);

  return((long)computed_symbolrate);

}  /* HAMARO_DRIVER_symbolrate_in() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_symbolrate_out() */
/*******************************************************************************************************/
long           HAMARO_DRIVER_symbolrate_out(  /* function to reverse symbolrate_in() function */
unsigned long  symbolrate,             /* symbol rate (in) */
unsigned long  sampleratekhz)          /* sample rate (in) */
{
  static HAMARO_BCDNO  bcd;
  unsigned long  computed_symbolrate = 0UL;

  HAMARO_BCD_set(&bcd,(long)symbolrate);
  HAMARO_BCD_mult(&bcd,100000L);
  HAMARO_BCD_div(&bcd,(0x01L<<23L));
  HAMARO_BCD_mult(&bcd,sampleratekhz);
  HAMARO_BCD_div(&bcd,100000L);

  computed_symbolrate = HAMARO_BCD_out(&bcd);

  return((long)computed_symbolrate);

}  /* HAMARO_DRIVER_symbolrate_out() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_compute_demod_pll_mult() */
/*******************************************************************************************************/
unsigned long  HAMARO_DRIVER_compute_demod_pll_mult(  /* function to compute pll freq. */
HAMARO_NIM            *nim,                           /* pointer to nim */
unsigned long  Fs,                             /* sample frequency */
unsigned long  Fc)                             /* crystal frequency */
{
	unsigned long   pll_mult;
	unsigned short  remainder;

	if (Fs == 0UL || Fc == 0UL)
	{
		/* don't pass any div by zero possibilities */
		if (nim != NULL)  
		{
			HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_DIV);
		}
		return(0UL);
	}

	/* compute pll_mult = (Fs * 6L) / Fc */
    /* make sure the result has the one extra digit from the fraction */
	pll_mult = ((Fs * 6UL) + 5UL) / (Fc/10); /* CR 9760 */

	remainder = (unsigned short)(pll_mult % 10);

	pll_mult = pll_mult/10; /* loose the extra digit */

	if (remainder > 5)
	{
		/* round the pll multiplier value */
		pll_mult++;
	}			   
	return(pll_mult);

}  /* HAMARO_DRIVER_compute_demod_pll_mult() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_compute_fs() */
/*******************************************************************************************************/
unsigned long  HAMARO_DRIVER_compute_fs(      /* function to compute the sample frequency */
unsigned long  pllmult,                /* demod pll multiplier value */
unsigned long  Fc)                     /* crystal frequency */
{
  unsigned long   rtn;

  /* compute Fs = (Fc * pllmult) / 6 ; -> rounded -> (Fc * pllmult + 5) / 60 */
  rtn = ((Fc * pllmult)+5UL)/6UL;
  
  return(rtn);

}  /* HAMARO_DRIVER_compute_fs() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_SetPNSequence() */
/*******************************************************************************************************/
BOOL     HAMARO_DRIVER_SetPNSequence(         /* function to set the state of the PN machine */
HAMARO_NIM      *nim,                         /* pointer to nim */
BOOL     pnflag)                       /* True=on, False=off */
{
  unsigned long  ulRegVal;
  BOOL   rtn = True;

  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  switch(pnflag)
  {
    case  True:
    case  False:
    {
      ulRegVal = (pnflag == True ? 0x01UL : 0x00UL);
      if (HAMARO_RegisterWrite(nim,CX2430X_BERERRORSEL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  return(False);
      break;
    }
    default:
    {
      HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
      rtn = False;
      break;
    }
  }  /* switch(... */

  return(rtn);

}  /* HAMARO_DRIVER_SetPNSequence() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_GetPNSequence() */
/*******************************************************************************************************/
BOOL     HAMARO_DRIVER_GetPNSequence(         /* function to read current state of PN */
HAMARO_NIM      *nim,                         /* pointer to nim */
BOOL     *pnflag)                      /* True=enabled, False=disabled */
{
  unsigned long  ulRegVal;

  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  /* enable PN bER */
  ulRegVal =  0x01;
  if (HAMARO_RegisterWrite(nim,CX2430X_BERERRORSEL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  return(False);

  if (pnflag == NULL)
  {
    HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
    return(False);
  }

  *pnflag = (ulRegVal == 0UL ? False : True);

  return(True);

}  /* HAMARO_DRIVER_GetPNSequence() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_BBB_errinfo() */
/*******************************************************************************************************/
void            HAMARO_DRIVER_BBB_errinfo(    /* function for perform common error code for BERReadyCount[21:0], BYTE,Block */
HAMARO_NIM             *nim,                  /* pointer to nim */
long            *last_count,           /* last error count (when changed, error count is ready) */
HAMARO_CMPLXNO         *cpx,                  /* HAMARO_CMPLXNO holding result */
unsigned long   errwindow,             /* error window size */
unsigned long   errmult,               /* multiplier (different for BERReadyCount[21:0], BYTE, BLOCK and DVB */
HAMARO_MSTATUS         *mstat)                /* returned measurement status: (done, saturated, not-done) */
{
  unsigned long  ulRegVal;
  long   errcount;

  /* sample is not yet ready */
  HAMARO_DRIVER_set_complex(cpx,-1L,1UL);
  *mstat = HAMARO_MSTATUS_NOTDONE;

  /* read the window counter (this is the initial count) */
  if (HAMARO_RegisterRead(nim,CX2430X_BERSTART,&ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  return;
    
  /* test if a sample is ready */
  if ((long)ulRegVal != *last_count)
  {
    /* save the current sample count */
    *last_count = (long)ulRegVal;

    /* freeze the counter */
    ulRegVal = 0x00;
    if (HAMARO_RegisterWrite(nim,CX2430X_BERSTART,ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  return;

    /* test for errwindow valid range, warn user if out of valid range */
    if (errwindow > 0xffUL)
    {
      HAMARO_DRIVER_SET_ERROR(nim,HAMARO_PARM_RANGE);
      errwindow = 0xffUL;
    }

    /* read the err counter */
    if (HAMARO_RegisterRead(nim,CX2430X_BERCOUNT_RS,&ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  return;
    errcount = (long)ulRegVal;
    HAMARO_DRIVER_set_complex(cpx,errcount,(errwindow*errmult));
    *mstat = HAMARO_MSTATUS_DONE;

    /* restart the counter */
    ulRegVal = 0x01UL;
    if (HAMARO_RegisterWrite(nim,CX2430X_BERSTART,ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  return;
  }

  return;

}  /* HAMARO_DRIVER_BBB_errinfo() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_error_measurements_off() */
/*******************************************************************************************************/
BOOL  HAMARO_DRIVER_error_measurements_off(   /* function to turn-OFF BER (i.e. BER, Byte, Block) settings */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  /* turn either HAMARO_PNBER or BER (ber, Byte, block) */
  if (HAMARO_DRIVER_BBB_error_off(nim) == False)  return(False);
  if (HAMARO_DRIVER_PNBER_error_off(nim) == False)  return(False);

  return(True);

}  /* HAMARO_DRIVER_error_measurements_off() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_BBB_error_off() */
/*******************************************************************************************************/
BOOL  HAMARO_DRIVER_BBB_error_off(            /* function to turn-OFF BER (i.e. BER, Byte, Block) settings */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  /* if any BER measurement is on, turn it off */
  if (nim->berbusy != -1L)  return(HAMARO_GetBER(nim,0UL,NULL,NULL));
  if (nim->bytebusy != -1L)  return(HAMARO_GetByteErrors(nim,0UL,NULL,NULL));
  if (nim->blockbusy != -1L)  return(HAMARO_GetByteErrors(nim,0UL,NULL,NULL));

  return(True);

}  /* HAMARO_DRIVER_BBB_error_off() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_errcount_disable() */
/*******************************************************************************************************/
BOOL  HAMARO_DRIVER_errcount_disable(         /* function to disable error count code */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  BOOL  rtn = True;

  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  nim->berbusy = -1;
  nim->bytebusy = -1;
  nim->blockbusy = -1;

  if (HAMARO_RegisterWrite(nim,CX2430X_BERRSSELECT,HAMARO_RSERRCNT_NONE, HAMARO_DEMOD_I2C_IO) != True)  rtn = False;
  if (HAMARO_RegisterWrite(nim,CX2430X_BERRSINFWINEN,0L, HAMARO_DEMOD_I2C_IO) != True)  rtn = False;

  return(rtn);

}  /* HAMARO_DRIVER_errcount_disable() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_PNBER_error_off() */
/*******************************************************************************************************/
BOOL  HAMARO_DRIVER_PNBER_error_off(          /* function to turn-OFF PN BER settings */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  /* if PN BER measurement is on, turn it off */
  if (nim->pnberbusy != -1L)  return(HAMARO_GetPNBER(nim,HAMARO_PNBER_UNDEF,(HAMARO_CMPLXNO*)NULL,(HAMARO_MSTATUS*)NULL));

  return(True);

}  /* HAMARO_DRIVER_PNBER_error_off() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_Reset() */
/*******************************************************************************************************/
BOOL  HAMARO_DRIVER_Reset(                    /* function to perform a demod reset operation */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  unsigned long  ulRegVal;
  BOOL   rtn = True;

  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  /* set demod registers to the default state */
  if (HAMARO_DRIVER_Default(nim) == False)  rtn = False; 
  
  /* reset the demod */
  ulRegVal = 0x01UL;
  if (HAMARO_RegisterWrite(nim,CX2430X_RSTHAMARO,ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  rtn = False;
  
  ulRegVal = 0x00UL;
  if (HAMARO_RegisterWrite(nim,CX2430X_RSTHAMARO,ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  rtn = False;

  return(rtn);

}  /* HAMARO_DRIVER_Reset() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_Preset() */
/*******************************************************************************************************/
BOOL  HAMARO_DRIVER_Preset(                   /* function to perform a demod preset operation */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  unsigned long  ulRegVal;
  BOOL   rtn = True;

  /* validate nim */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  /* preset the demod */
  ulRegVal = 0x02UL;
  if (HAMARO_RegisterWrite(nim,CX2430X_RSTHAMARO,ulRegVal, HAMARO_DEMOD_I2C_IO) == False)  rtn = False;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性生交大片免费看在线播放 | 日本精品一区二区三区四区的功能| 91网上在线视频| 一区在线播放视频| 成人精品亚洲人成在线| 最新国产成人在线观看| 色婷婷综合激情| 日日夜夜免费精品| 日韩一二三四区| 国产成都精品91一区二区三| 1区2区3区国产精品| 欧美日韩在线不卡| 激情六月婷婷久久| 亚洲欧洲国产日韩| 欧美一区二区视频在线观看2020| 日本一不卡视频| 欧美激情一区二区三区不卡| 欧美又粗又大又爽| 久久精品99国产精品日本| 欧美激情一区不卡| 欧美日韩国产高清一区二区三区 | 欧美日韩精品二区第二页| 奇米影视一区二区三区| 中文字幕免费不卡在线| 色欧美片视频在线观看| 国产精品中文字幕一区二区三区| 亚洲免费在线播放| 国产亚洲成av人在线观看导航| 99re热这里只有精品免费视频 | 五月激情六月综合| 日本一区二区高清| 日韩网站在线看片你懂的| 91蝌蚪porny成人天涯| 国产一区激情在线| 久久99国产精品成人| 五月天一区二区三区| 亚洲免费在线观看| 国产精品久久久久久福利一牛影视| 日韩欧美一区二区视频| 欧美男男青年gay1069videost| 成人av第一页| av电影天堂一区二区在线| 国产真实精品久久二三区| 丝袜亚洲另类丝袜在线| 亚洲午夜视频在线观看| 亚洲网友自拍偷拍| 亚洲伊人伊色伊影伊综合网| 一级日本不卡的影视| 玉足女爽爽91| 亚洲电影在线免费观看| 亚洲综合丝袜美腿| 亚洲尤物在线视频观看| 亚洲国产精品天堂| 视频一区视频二区中文字幕| 亚洲一区二区三区在线看| 日韩精品91亚洲二区在线观看| 视频一区在线视频| 国产激情精品久久久第一区二区| 国产不卡在线播放| 福利一区二区在线| 丁香婷婷综合五月| 国产白丝网站精品污在线入口| www.欧美色图| 欧美图区在线视频| 久久精品无码一区二区三区| 亚洲精品日韩一| 免费人成在线不卡| 一本大道久久a久久精品综合| 欧美电影在线免费观看| 久久免费的精品国产v∧| 亚洲人成小说网站色在线| 日韩精品高清不卡| 91麻豆免费在线观看| 精品国产人成亚洲区| 一区二区在线观看av| 精品一区二区三区在线播放| 91女厕偷拍女厕偷拍高清| 欧美大片在线观看| 亚洲国产婷婷综合在线精品| 国产999精品久久久久久绿帽| 欧美日韩一区久久| 亚洲欧洲性图库| 国产精品一区二区三区乱码| 91麻豆精品久久久久蜜臀| 亚洲国产美国国产综合一区二区| 国产传媒欧美日韩成人| 久久综合久久综合久久综合| 亚洲成人av资源| 在线观看视频一区二区欧美日韩| 日本一区二区三区dvd视频在线| 久久成人免费日本黄色| 欧美一级免费大片| 亚洲成av人综合在线观看| 色视频一区二区| 亚洲成va人在线观看| 欧美三级中文字幕在线观看| 成人免费在线观看入口| 成人网男人的天堂| 中文字幕一区在线| 99re视频精品| 亚洲国产婷婷综合在线精品| 欧美色窝79yyyycom| 日韩高清电影一区| 欧美精品丝袜中出| 日韩激情av在线| 日韩精品一区二区三区老鸭窝| 狠狠色综合播放一区二区| 久久久www成人免费毛片麻豆| 国产在线观看免费一区| 国产精品情趣视频| 欧美色区777第一页| 免费在线视频一区| 中文在线一区二区| 欧美在线影院一区二区| 久久av资源站| 一个色综合av| 欧美精品一区二区精品网| 91在线精品秘密一区二区| 日本美女视频一区二区| 国产午夜精品久久久久久久| 欧美色综合影院| 成人精品鲁一区一区二区| 午夜精品久久久久久久蜜桃app| 精品久久99ma| 欧美日韩国产综合久久| 不卡欧美aaaaa| 国产综合久久久久影院| 亚洲成人自拍网| 国产精品久久久久四虎| 精品国产一二三区| 欧美日韩国产综合久久| 不卡一卡二卡三乱码免费网站| 韩国成人在线视频| 国产三级久久久| 99久久国产综合精品色伊| 看片网站欧美日韩| 亚洲第一成人在线| 亚洲男人的天堂一区二区 | 国产aⅴ综合色| 奇米精品一区二区三区在线观看| 一区二区三区电影在线播| 久久婷婷国产综合精品青草| 久久亚洲综合色| 国产午夜久久久久| 久久先锋资源网| 国产日韩v精品一区二区| 久久奇米777| 久久这里只有精品6| 欧美国产精品劲爆| 亚洲国产精品av| 成人欧美一区二区三区白人 | 欧美艳星brazzers| 色偷偷成人一区二区三区91| 欧美日韩久久久久久| 欧美日韩亚洲另类| 欧美xxxx在线观看| 中文字幕一区三区| 亚洲国产精品一区二区www | 亚洲va欧美va人人爽| 午夜精品久久久久久久| 免费观看一级欧美片| 国产一区久久久| 欧美性猛交xxxxxxxx| 69久久99精品久久久久婷婷 | 91色porny| 91精品国产一区二区| 国产精品国产三级国产| 五月天一区二区三区| 成人午夜精品在线| 日韩欧美一区二区三区在线| 国产亚洲va综合人人澡精品| 亚洲成人7777| 成人国产精品视频| 欧美大片顶级少妇| 一区二区三区国产精华| 国产美女在线观看一区| 日韩色视频在线观看| 成人免费在线观看入口| 国产精品亚洲第一| 欧美亚洲国产一区二区三区| 日本一区二区三区视频视频| 日本亚洲免费观看| 欧美日韩成人综合| 亚洲欧美中日韩| 国产成人综合亚洲91猫咪| 日韩欧美精品在线| 日本亚洲欧美天堂免费| 色综合天天在线| 亚洲欧洲综合另类| 国产露脸91国语对白| 日韩精品自拍偷拍| 免费成人在线影院| 欧美理论在线播放| 美女性感视频久久| 精品国产区一区| 美女国产一区二区三区| 久久久精品一品道一区| 国产一区二区三区四区在线观看| 国产清纯在线一区二区www| 国产精品综合二区|