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

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

?? zl5011xpac.c

?? Zalink50114----TDMoIP芯片驅(qū)動源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
   {
      countValue = ZL5011X_DPLL_MAX_INVERSE_VALUE /
            (zl5011xParams->wanIf.clock.sync.dpllCentreCount / 2);

      status = zl5011xWrite(zl5011xParams, ZL5011X_DPLL_INVERSE_CENTRE_FREQ,
            countValue << ZL5011X_DPLL_INVERSE_CENTRE_BITS);
   }
   else
   {
      status = ZL5011X_ERROR;
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetT1InverseFreq

 Description:
    The inverse of the T1 reference frequency is required by the DPLL

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xPacDpllSetT1InverseFreq(zl5011xParamsS *zl5011xParams)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T countValue;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID, "zl5011xPacDpllSetT1InverseFreq:", 0, 0, 0, 0, 0, 0);

   /* the calculation used to determine the inverse frequency is :-
         REAL_MAX_INVERSE_VALUE / T1 center frequency
      However, the maximum number is larger than a 32 bit integer, so the divide
      is done in two stages :-
         MAX_INVERSE_VALUE / (T1 center frequency / 2)
      where MAX_INVERSE_VALUE = (REAL_MAX_INVERSE_VALUE / 2) */
   countValue = (ZL5011X_DPLL_MAX_INVERSE_VALUE / ZL5011X_DPLL_INVERSE_T1_DIV) *
         ZL5011X_DPLL_INVERSE_T1_MULT;

   if ((zl5011xParams->wanIf.clock.sync.dpllCentreCount / 2) != 0)
   {
      countValue /= zl5011xParams->wanIf.clock.sync.dpllCentreCount / 2;

      status = zl5011xWrite(zl5011xParams, ZL5011X_DPLL_INVERSE_T1_FREQ,
            countValue << ZL5011X_DPLL_INVERSE_T1_BITS);
   }
   else
   {
      status = ZL5011X_ERROR;
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetJ2InverseFreq

 Description:
    The inverse of the J2 reference frequency is required by the DPLL

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xPacDpllSetJ2InverseFreq(zl5011xParamsS *zl5011xParams)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T countValue;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID, "zl5011xPacDpllSetJ2InverseFreq:", 0, 0, 0, 0, 0, 0);

   /* the calculation used to determine the inverse frequency is :-
         REAL_MAX_INVERSE_VALUE / J2 center frequency
      However, the maximum number is larger than a 32 bit integer, so the divide
      is done in two stages :-
         MAX_INVERSE_VALUE / (J2 center frequency / 2)
      where MAX_INVERSE_VALUE = (REAL_MAX_INVERSE_VALUE / 2) */
   countValue = (ZL5011X_DPLL_MAX_INVERSE_VALUE / ZL5011X_DPLL_INVERSE_J2_DIV) *
         ZL5011X_DPLL_INVERSE_J2_MULT;

   if ((zl5011xParams->wanIf.clock.sync.dpllCentreCount / 2) != 0)
   {
      countValue /= zl5011xParams->wanIf.clock.sync.dpllCentreCount / 2;

      status = zl5011xWrite(zl5011xParams, ZL5011X_DPLL_INVERSE_J2_FREQ,
            countValue << ZL5011X_DPLL_INVERSE_J2_BITS);
   }
   else
   {
      status = ZL5011X_ERROR;
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetLockRange

 Description:
    This programs the count value that the DPLL frequency can deviate from the
    centre. The count value is calculated, based on the centre frequency
    for the DPLL

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   maxOffsetPpm   maximum offset that the DPLL frequency can move by in ppm.

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xPacDpllSetLockRange(zl5011xParamsS *zl5011xParams, Uint32T maxOffsetPpm)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T lockValue;
   Uint32T bits;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID, "zl5011xPacDpllSetLockRange:", 0, 0, 0, 0, 0, 0);

   if (maxOffsetPpm > ZL5011X_DPLL_MAX_LOCK_RANGE_PPM)
   {
      status = ZL5011X_PARAMETER_INVALID;
   }

   if (status == ZL5011X_OK)
   {
      lockValue = (maxOffsetPpm * (zl5011xParams->wanIf.clock.sync.dpllCentreCount / 1000)) / 1000;

      if ((lockValue & ~ZL5011X_DPLL_LOCK_RANGE_MASK) != 0)
      {
         status = ZL5011X_PARAMETER_INVALID;
      }
   }

   if (status == ZL5011X_OK)
   {
      ZL5011X_TRACE(ZL5011X_PAC_FN_ID, "zl5011xPacDpllSetLockRange: %u",
            lockValue, 0, 0, 0, 0, 0);

      zl5011xParams->wanIf.clock.sync.dpllLockRange = maxOffsetPpm;

      bits = (lockValue & ZL5011X_DPLL_LOCK_RANGE_MASK) << ZL5011X_DPLL_LOCK_RANGE_BITS;

      status = zl5011xWrite(zl5011xParams, ZL5011X_DPLL_LOCK_RANGE, bits);
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetLockDetectThreshold

 Description:
    Sets the threshold to be used to determine whether the DPLL is locked.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   detectThreshold   maximum phase offset for the DPLL to be deemed in lock.
                     In UI (unit interval) x 10. i.e. 20 means that the DPLL
                     is in lock if up to 2.0 clock cycles of the DPLL reference
                     input adrift.
   detectTimeUs   time that the DPLL deviation must be below the threshold in
                  order to declare lock.

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xPacDpllSetLockDetectThreshold(zl5011xParamsS *zl5011xParams,
   Uint16T detectThreshold, Uint32T detectTimeUs)
{
   zlStatusE status = ZL5011X_OK;
   Uint16T temp;
   Uint32T bits;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID,
         "zl5011xPacDpllSetLockDetectThreshold: threshold %d, time ms %d",
         detectThreshold, detectTimeUs, 0, 0, 0, 0);

   if (status == ZL5011X_OK)
   {
      /* convert the time in Us into the value required in the device - which
         is in frames. So divide by 125 (1 frame = 125us) */
      temp = (Uint16T)(detectTimeUs / 125);
   }

   if (status == ZL5011X_OK)
   {
      bits = (detectThreshold << ZL5011X_DPLL_LOCK_THRESHOLD_BITS) |
            (temp << ZL5011X_DPLL_LOCK_TIME_BITS);

      status = zl5011xWrite(zl5011xParams, ZL5011X_DPLL_LOCK_DETECT, bits);

      zl5011xParams->wanIf.clock.sync.dpllLockDetectThreshold = detectThreshold;
      zl5011xParams->wanIf.clock.sync.dpllLockDetectTimeUs = detectTimeUs;
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetSlewRate

 Description:
    This programs the maximum slew rate for the DPLL frequency and the DPLL
    bandwidth.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   slewRate       a number that is used to control the slew rate.
   dpllBandwidth  controls the bandwith of the DPLL

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
   The value passed in to this function must take account of the system
   clock etc.

*******************************************************************************/

zlStatusE zl5011xPacDpllSetSlewRate(zl5011xParamsS *zl5011xParams, Uint32T slewRate,
      Uint8T dpllBandwidth)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T bits;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID,
         "zl5011xPacDpllSetSlewRate: slew %d, bandwidth %d",
         slewRate, dpllBandwidth, 0, 0, 0, 0);

   if ((slewRate & ~ZL5011X_DPLL_SLEW_RATE_MASK) != 0)
   {
      status = ZL5011X_PARAMETER_INVALID;
   }

   if ((dpllBandwidth & ~ZL5011X_DPLL_BANDWIDTH_CTRL_MASK) != 0)
   {
      status = ZL5011X_PARAMETER_INVALID;
   }

   if (status == ZL5011X_OK)
   {
      bits = (slewRate << ZL5011X_DPLL_SLEW_RATE_BITS) |
            (dpllBandwidth << ZL5011X_DPLL_BANDWIDTH_CTRL_BITS);

      status = zl5011xWrite(zl5011xParams,
            ZL5011X_DPLL_SLEW_RATE, bits);

      zl5011xParams->wanIf.clock.sync.dpllSlewRate = slewRate;
      zl5011xParams->wanIf.clock.sync.dpllBandwidth = dpllBandwidth;
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetRefPriority

 Description:
    Sets the priority of the reference sources for the DPLL. The can restrict
    the DPLL to using only one of the references, give priority to one over the
    other or give priority to the reference currently in use.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   priority       sets the priority of the reference sources

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xPacDpllSetRefPriority(zl5011xParamsS *zl5011xParams,
      zl5011xDpllRefPriorityE priority)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T bits, bitMask;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID, "zl5011xPacDpllSetRefPriority: %d", priority, 0, 0, 0, 0, 0);

   status = ZL5011X_CHECK_DPLL_PRIORITY(priority);

   if (status == ZL5011X_OK)
   {
      bits = priority << ZL5011X_DPLL_REF_PRIORITY_BITS;
      bitMask = ZL5011X_DPLL_REF_PRIORITY_MASK << ZL5011X_DPLL_REF_PRIORITY_BITS;

      zl5011xParams->wanIf.clock.sync.priority = priority;

      status = zl5011xReadModWrite(zl5011xParams,
            ZL5011X_DPLL_CHANGE_CONTROL, bits, bitMask);
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetClockMode

 Description:
    Sets the operating mode of the DPLL. This would only be used in normal mode,
    but has a routine to provide access for completeness.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   mode           sets the mode of operation of the DPLL.

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xPacDpllSetClockMode(zl5011xParamsS *zl5011xParams,
      zl5011xDpllOperationE mode)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T bits, bitMask;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID, "zl5011xPacDpllSetClockMode: %d", mode, 0, 0, 0, 0, 0);

   status = ZL5011X_CHECK_DPLL_MODE(mode);

   if (status == ZL5011X_OK)
   {
      bits = mode << ZL5011X_DPLL_FORCE_MODE_BITS;
      bitMask = (ZL5011X_DPLL_FORCE_MODE_MASK << ZL5011X_DPLL_FORCE_MODE_BITS);

      status = zl5011xReadModWrite(zl5011xParams,
            ZL5011X_DPLL_CHANGE_CONTROL, bits, bitMask);
   }

   return(status);
}

/*******************************************************************************

 Function:
    zl5011xPacDpllSetMtieMode

 Description:
    The DPLL can be set to adjust the phase of a reference source during a
    reference switch. This function is used to enable / disable this feature.
    This function also sets the length of half a bit period, which is required
    for the MTIE function.

 Inputs:
   zl5011xParams   Pointer to the structure for this device instance
   mtie           ZL5011X_TRUE if phase changes should be made during reference
                  switching

 Outputs:
    None

 Returns:
   zlStatusE

 Remarks:
    None

*******************************************************************************/

zlStatusE zl5011xPacDpllSetMtieMode(zl5011xParamsS *zl5011xParams, zl5011xBooleanE mtie)
{
   zlStatusE status = ZL5011X_OK;
   Uint32T bits = 0, bitMask = 0;
   Uint32T halfRefPeriod;

   ZL5011X_TRACE(ZL5011X_PAC_FN_ID, "zl5011xPacDpllSetMtieMode: %d", mtie, 0, 0, 0, 0, 0);

   status = ZL5011X_CHECK_BOOLEAN(mtie);

   if (status == ZL5011X_OK)
   {
      /* work out how many system clock periods there are in half of a
         DPLL reference input period */
      halfRefPeriod = zl5011xParams->systemClockFreq /
            (zl5011xParams->wanIf.clock.sync.refInputFreqHz * 2);

      if ((halfRefPeriod & ~ZL5011X_DPLL_MTIE_ROUND_OFF_MASK) != 0)
      {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人v欧美综合天堂| 日韩精品一区第一页| 欧美三级蜜桃2在线观看| 麻豆国产精品777777在线| 国产精品青草久久| 欧美精品亚洲一区二区在线播放| 高清成人在线观看| 日韩激情av在线| 一区二区三区中文免费| 国产日韩欧美高清在线| 91精品国产综合久久久久久久久久 | 国产女人水真多18毛片18精品视频| 欧美在线一二三| av中文字幕在线不卡| 久久se精品一区精品二区| 亚洲国产美女搞黄色| 国产精品久久久久久久久免费桃花 | 欧美国产日韩在线观看| 日韩欧美一区二区在线视频| 91福利国产精品| 99精品欧美一区| 国产**成人网毛片九色| 久久国产精品色婷婷| 日韩精品电影在线观看| 一区二区三区在线观看视频| 国产精品看片你懂得| 久久久综合视频| 2020国产精品久久精品美国| 欧美一二三四在线| 欧美日韩国产一级片| 色婷婷久久久综合中文字幕| 99亚偷拍自图区亚洲| 成人黄色免费短视频| 国产91高潮流白浆在线麻豆| 国产高清视频一区| 国内精品国产成人| 紧缚奴在线一区二区三区| 日韩电影在线观看电影| 日韩激情视频在线观看| 日韩在线观看一区二区| 日韩高清不卡一区二区三区| 日产国产欧美视频一区精品| 日本亚洲一区二区| 丝袜国产日韩另类美女| 日韩影院在线观看| 免费看黄色91| 国产自产高清不卡| 激情综合色播五月| 国产真实乱子伦精品视频| 国产麻豆精品theporn| 国产91清纯白嫩初高中在线观看 | 国产日韩欧美精品综合| 国产欧美一区二区三区网站 | 青青草91视频| 六月丁香综合在线视频| 国产在线播放一区三区四| 国产精品白丝jk黑袜喷水| 福利一区二区在线| 97精品视频在线观看自产线路二| 色综合久久综合中文综合网| 欧美色窝79yyyycom| 日韩亚洲欧美在线| 国产亚洲欧美色| 亚洲视频每日更新| 日日夜夜精品视频天天综合网| 日本特黄久久久高潮| 国产伦精品一区二区三区免费| 国产网站一区二区三区| 成人97人人超碰人人99| 色综合久久久久综合| 欧美日本不卡视频| 2024国产精品视频| 亚洲欧洲国产日韩| 亚洲国产成人精品视频| 精品一区二区三区不卡 | 中文字幕一区二区三| 一区二区三区不卡视频| 免费观看日韩电影| 成人免费福利片| 欧美日韩久久久久久| 精品国产一区二区在线观看| 中文字幕一区二区三| 视频在线观看91| caoporn国产一区二区| 欧美日韩情趣电影| 欧美国产一区二区| 午夜精品国产更新| 丁香桃色午夜亚洲一区二区三区| 欧美视频精品在线| 中文文精品字幕一区二区| 亚洲狠狠爱一区二区三区| 国产精品自拍在线| 欧美欧美午夜aⅴ在线观看| 国产欧美日韩视频在线观看| 日韩av中文字幕一区二区| 国产91精品精华液一区二区三区| 制服.丝袜.亚洲.中文.综合| 日韩一区欧美一区| 美脚の诱脚舐め脚责91| 在线观看视频一区二区欧美日韩| 精品sm在线观看| 午夜欧美视频在线观看| 91免费国产在线| 国产午夜精品一区二区三区四区| 日韩影院免费视频| 色一情一伦一子一伦一区| 久久久久久久国产精品影院| 日韩精品国产精品| 欧美综合久久久| 亚洲视频免费看| 成人看片黄a免费看在线| 欧美电影免费观看高清完整版| 一区二区三区免费看视频| 国产大陆精品国产| 日韩欧美一二三四区| 亚洲成人精品一区二区| 色爱区综合激月婷婷| 国产精品麻豆久久久| 久久99精品国产.久久久久久| 欧美疯狂做受xxxx富婆| 一区二区三区美女| 99久久精品国产观看| 国产亚洲自拍一区| 国产一区二区三区精品视频| 欧美成人三级在线| 美日韩一区二区| 这里是久久伊人| 日欧美一区二区| 51精品秘密在线观看| 丝袜亚洲另类丝袜在线| 欧美主播一区二区三区| 亚洲精品日韩专区silk| 99国产精品一区| 亚洲少妇最新在线视频| 91蜜桃视频在线| 一区二区三区资源| 欧美优质美女网站| 亚洲国产人成综合网站| 欧美图区在线视频| 天天色 色综合| 日韩午夜电影av| 精品一区二区在线看| 精品久久一区二区| 国产一区二区三区在线观看免费视频| 久久在线观看免费| 国产高清精品在线| 国产精品二三区| 欧洲一区在线电影| 日韩国产高清影视| 日韩欧美一区在线观看| 国产一区二区三区四区五区入口 | 久久超级碰视频| 国产欧美日韩麻豆91| 成人app在线| 一区二区三区在线看| 欧美精品aⅴ在线视频| 免费观看在线综合| 国产午夜精品理论片a级大结局 | 成人丝袜视频网| 一区二区三区中文在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产调教视频一区| 91免费国产在线观看| 午夜精品久久久久久久99樱桃| 精品999久久久| gogo大胆日本视频一区| 性做久久久久久免费观看| 欧美xxxxxxxx| 日本黄色一区二区| 免费精品视频在线| 国产精品丝袜一区| 欧美日韩激情一区二区| 国产美女一区二区| 亚洲精品免费视频| 日韩午夜精品电影| aaa国产一区| 日本不卡在线视频| 国产精品久久久久久久岛一牛影视| 欧美性色黄大片| 丁香婷婷综合网| 男男视频亚洲欧美| 国产精品每日更新| 欧美一区二区三区日韩| 成人爱爱电影网址| 日韩精品乱码av一区二区| 中文无字幕一区二区三区 | 国产精品久久久久久妇女6080| 91精品国产综合久久久久久漫画 | 欧美性猛片xxxx免费看久爱| 精品一区二区三区欧美| 亚洲三级在线观看| 久久影音资源网| 欧美日韩亚洲综合一区 | 91蝌蚪国产九色| 精品一区二区三区免费观看| 亚洲国产视频一区| 国产精品女同互慰在线看| 欧美一区二区三区播放老司机| 99免费精品在线观看| 国产乱妇无码大片在线观看|