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

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

?? hamaro_srbin.c

?? QPSK Tuner details, for conexant chipset.
?? C
?? 第 1 頁 / 共 3 頁
字號:

    if (channel_index < max_channels)
    {
          STS_GetChannel(channel_index, &channel_info);
        /* Check whether the candidate is duplicate fingding */
        for( i=0; i < channel_index; i++ )
        {
            STS_GetChannel( i, &temp_ch_info );
            temp_fr1 = temp_ch_info.carrier_freq_hz - temp_ch_info.symbol_rate_hz/2 - 2000000;
            temp_fr2 = temp_ch_info.carrier_freq_hz + temp_ch_info.symbol_rate_hz/2 + 2000000;
            if( temp_ch_info.good_channel && temp_fr1 < channel_info.carrier_freq_hz
                && channel_info.carrier_freq_hz <  temp_fr2)
            {
                /* it's a tp already found, try next channel */
                channel_index++;
                try_next_channel = 1;
                STSDBG_WR_STR("This is a tp already found, tyr next channel",True);
                return;
            }
        }
        
        btl_bin_size_hz = btl_bin_size_ppm;
        
        sym_rate_bound = SRBIN_BTL_MAX_ONE_SIDE_PPM_HIGH;
        


        STSDBG_WR_UNSIGNED_LN("btl_bin_size_hz = ",  btl_bin_size_hz);
        STSDBG_WR_UNSIGNED_LN("sym_rate_bound = ",   sym_rate_bound);
            
        chan_obj.coderate   = HAMARO_CODERATE_3DIV4;
        chan_obj.frequency  = channel_info.carrier_freq_hz;
        
        HAMARO_GetLNBDC (hamaro_nim_list.nim[0], &chan_obj.lnbpol);
        //chan_obj.lnbpol     = HAMARO_LNB_HIGH; /* Also HAMARO_LNB_LOW */
        chan_obj.lnbtone    = HAMARO_LNBTONE_OFF;
        chan_obj.modtype    = HAMARO_MOD_QPSK;
        chan_obj.specinv    = HAMARO_SPEC_INV_OFF_BOTH;
        chan_obj.symbrate   = channel_info.symbol_rate_hz/1000;
        chan_obj.transpec   = HAMARO_SPEC_DVB;
        chan_obj.viterbicoderates = (HAMARO_CODERATE_2DIV3 | HAMARO_CODERATE_1DIV2 |HAMARO_CODERATE_7DIV8 |
                                     HAMARO_CODERATE_4DIV5 | HAMARO_CODERATE_5DIV6 | HAMARO_CODERATE_6DIV7);


        bin_timeout_msec = 320;//320 - channel_info.symbol_rate_hz*6/1000000; 

        channel_index++;
    }
    else
    {
         more_channels = False;
    }
}

static BOOL   
SRBIN_NextChannel2NextBinCriterion()
{
    if ((more_channels == True) && (channel_index <= max_channels))
    {
        return (True);
    }
    return (False);
}

static STATE* 
SRBIN_NextChannel2NextBin()
{
    DBG_CHECK_FSM_LIMITS(&sr_bin_next_bin_state);
    return &sr_bin_next_bin_state;    
}

static BOOL   
SRBIN_NextChannel2CleanupCriterion()
{
    if ((more_channels == False)||(channel_index > max_channels))
    {
        return (True);
    }
    return (False);
}

static STATE* 
SRBIN_NextChannel2Cleanup()
{
    DBG_CHECK_FSM_LIMITS(&sr_bin_cleanup_state);
    return &sr_bin_cleanup_state;
}

/*****************************************************************************/
/*       TIMING FUNCTIONS.                                                   */
/*****************************************************************************/
typedef struct _trace_time_t
{
    u_int32 min, sec, msec, nsec;
} trace_time_t;

unsigned long srbin_clock_us()
{    
	extern void trace_timestamp(trace_time_t *time);
	trace_time_t dmd_time;	
	trace_timestamp(&dmd_time);
	return (dmd_time.min*60000000+dmd_time.sec*1000000+dmd_time.msec*1000+dmd_time.nsec/1000);
}
static clock_t start_us;
static void 
SRBIN_SetTimer_us(void)
{
    start_us = srbin_clock_us();
}

static unsigned short 
SRBIN_GetElapsedTime1US(void)
{
    clock_t finish;
    unsigned short duration;
  
    finish = srbin_clock_us();
    duration = (unsigned short)(finish - start_us);
    return duration;
}



static clock_t start1, start2;
static void 
SRBIN_SetTimer1(void)
{
    start1 = clock();
}

static void 
SRBIN_SetTimer2(void)
{
    start2 = clock();
}

static unsigned short 
SRBIN_GetElapsedTime1MilliSec(void)
{
    clock_t finish;
    unsigned short duration;
  
    finish = clock();
    duration = (unsigned short)(finish - start1);
    return duration;
}

static unsigned short 
SRBIN_GetElapsedTime2MilliSec(void)
{
    clock_t finish;
    unsigned short duration;
  
    finish = clock();
    duration = (unsigned short)(finish - start2);
    return duration;
}


/*****************************************************************************/
/*                      END OF TIMING FUNCTIONS.                             */
/*****************************************************************************/

/* Symbol rate binning: Next bin state */

static unsigned short locktest_timeout_msec = SRBIN_LOCKTEST_TIMEOUT_MSEC;
static unsigned char  max_num_attempts = SRBIN_MAX_ATTEMPTS_PER_CHANNEL;
static unsigned char  num_attempts;
extern BOOL PWRSCAN_BTLAccClear();
static void
SRBIN_ChangeChannel(unsigned long nominal_symbol_rate_hz)
{   
    chan_obj.symbrate = nominal_symbol_rate_hz/1000UL;
    PWRSCAN_BTLAccClear(); 
    
    STS_ChangeChannel(&chan_obj);
}

#if 0
static unsigned long SRBIN_GetMatchedSR(unsigned long sr_hz)
{
    unsigned short i=0;
    
    sr_hz /= 1000;
    
    while(i<known_symbol_rate_num)
    {
        if (known_symbol_rate_table[i]<=sr_hz)
            break;
        
        i++;    
    }
    
    if( i >= known_symbol_rate_num )
    {
        return 0;
    }
    
    return known_symbol_rate_table[i] * 1000;
}
#else
static u_int16 reorder_symbol_rate_current = 0;
static unsigned long sr_last_known_good_khz = 0;
#define SR_DIFF_KHZ 300

static int32 SRBIN_FillOrderedSRTable(unsigned long sr_hz, unsigned long range_k)
{
    unsigned short i=0, j=0;
    int32 upper=0, low=0;
    unsigned short lasti=0, lastj=0, ppm=0;
    unsigned short idone=FALSE, jdone=FALSE, jcont=FALSE;
    
    sr_hz /= 1000;
    
    while(i<known_symbol_rate_num)
    {
        if (known_symbol_rate_table[i]<= (sr_hz-SR_DIFF_KHZ) )
            break;
        
        i++;    
    }
    
    reorder_symbol_rate_count = 0;
    reorder_symbol_rate_current = 0;
    
    ppm = sr_hz/100;//300;
    
    if( ppm > 150 )
    {
        ppm = 150;
    }
    
    if (i==known_symbol_rate_num)
        return (-1);
    
    j = i - 1;
    if( i == 0 )
    {
        j=0;
    }
    
    upper = sr_hz + range_k;
    low = sr_hz - range_k;
  STSDBG_WR_UNSIGNED(" [ppm] = ", ppm);
  STSDBG_WR_UNSIGNED(" | [low] = ", low);
  STSDBG_WR_UNSIGNED_LN(" | [upper] = ", upper);
  
    if (low < 0)
        low = 0;
    if (upper > known_symbol_rate_table[0])
        upper = known_symbol_rate_table[0];
    
    if( sr_last_known_good_khz > low && sr_last_known_good_khz < upper  )
    {
        reorder_symbol_rate_table[reorder_symbol_rate_count++]= sr_last_known_good_khz;
    }
    lasti = known_symbol_rate_table[i] + ppm + 10;
        
    while(1)
    {
        if (j==0)
            jdone = TRUE;
            
        if (i>=known_symbol_rate_num)
            idone = TRUE;
        
        if (reorder_symbol_rate_count>=REORDER_SYMBOL_RATE_NUMBER)
            break;
        
        if (jcont==FALSE)
        {    
            if ((known_symbol_rate_table[i] > low)&&(idone==FALSE))
            {
                  if ((lasti-known_symbol_rate_table[i]) > ppm)
                  {
                    lasti = known_symbol_rate_table[i];
                    reorder_symbol_rate_table[reorder_symbol_rate_count++]= known_symbol_rate_table[i];
                }
                else
                {
                    i++;
                    continue;
                }
            }
            else
            {
                idone = TRUE;
            }
      }
        if ((known_symbol_rate_table[j] < upper)&&(jdone==FALSE))
        {
              if ((known_symbol_rate_table[j]- lastj) > ppm)
              {
                 lastj = known_symbol_rate_table[j];
               reorder_symbol_rate_table[reorder_symbol_rate_count++]= known_symbol_rate_table[j];
               jcont = FALSE;
            }
            else
            {
                j--;
                jcont = TRUE;
            continue;
            }
        }
        else
        {
            jdone = TRUE;
        }
        
        if (jdone && idone)
            break;

        if (idone==FALSE) i++;
        if (jdone==FALSE) j--;
    }
    
    STSDBG_WR_UNSIGNED(" i = ", i);
  STSDBG_WR_UNSIGNED_LN(" | j = ", j);
    STSDBG_WR_UNSIGNED_LN(" reorder_symbol_rate_count = ", reorder_symbol_rate_count);

    return 0;
}


static unsigned long SRBIN_GetMatchedSR(unsigned long sr_hz)
{
    unsigned long i=0;
//  
//  sr_hz /= 1000;
//  
//  while(i<known_symbol_rate_num)
//  {
//      if (known_symbol_rate_table[i]<=sr_hz)
//          break;
//      
//      i++;    
//  }
//  
//  return known_symbol_rate_table[i] * 1000;
    if (reorder_symbol_rate_current<reorder_symbol_rate_count)
    {
        i = reorder_symbol_rate_table[reorder_symbol_rate_current]*1000;
        reorder_symbol_rate_current++;
    }
    
    return i;
}
#endif

static void SRBIN_NextBin_PreBin()
{
    volatile unsigned char *addr;
    unsigned int end=0, start=0;
    unsigned long delta_sr,delta_tm;
    
    addr = (volatile unsigned char *)0x304E0050;
    start = clock();
    end = start;
    
    if( channel_info.symbol_rate_hz >= 30000000 )
    {
        delta_sr = 2500000;
        delta_tm = 80;
    }
    else if( channel_info.symbol_rate_hz >= 20000000 )
    {
        delta_sr = 2000000;
        delta_tm = 80;
    }
    else if( channel_info.symbol_rate_hz >= 10000000)
    {
        delta_sr = 1500000;
        delta_tm = 100;
    }
    else
    {
        delta_sr = 800000;
        delta_tm = 200;
    }
    
    STSDBG_WR_UNSIGNED_LN(" DMD LOCK Detect Time = ", delta_tm); 
    
    /*Try to test if demod is locked for 10 times.*/
    while((clock() - start)<delta_tm)
    {
        if ((*addr)&0x02)
        {
                try_next_channel = 0;
                end = clock();
                if (max_dmd_lock_detect_time<(end-start))
                    max_dmd_lock_detect_time = end-start;
                
                //STSDBG_WR_UNSIGNED_LN(" DMD LOCK Detect Time (0M) = ", end-start);    
                break;
        }
    }
    
    if (try_next_channel)
    {
        HAMARO_SetSymbolRate(hamaro_nim_list.nim[0],sr_last_known_good_khz*1000);
        while((clock() - start)<delta_tm*2)
        {
            if ((*addr)&0x02)
            {
                    try_next_channel = 0;
                    end = clock();
                    if (max_dmd_lock_detect_time<(end-start))
                        max_dmd_lock_detect_time = end-start;
                        
                    STSDBG_WR_UNSIGNED_LN(" DMD LOCK Detect last know sr = ", sr_last_known_good_khz);   
                    break;
            }  
        }
    }
    
    if (try_next_channel)
    {
        HAMARO_SetSymbolRate(hamaro_nim_list.nim[0],channel_info.symbol_rate_hz-delta_sr);
        while((clock() - start)<delta_tm*3)
        {
            if ((*addr)&0x02)
            {
                    try_next_channel = 0;
                    channel_info.symbol_rate_hz -= delta_sr;
                    end = clock();
                    if (max_dmd_lock_detect_time<(end-start))
                        max_dmd_lock_detect_time = end-start;
                        

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产入口| 欧美一区二区成人| 久久av资源网| 亚洲美女屁股眼交3| 日韩精品自拍偷拍| 欧美影院精品一区| 国产精品亚洲一区二区三区在线| 亚洲一区在线观看网站| 国产日本亚洲高清| 欧美成人欧美edvon| 欧美日韩在线播| 91色|porny| 国产成人精品免费网站| 九一久久久久久| 亚洲成人午夜影院| 一区二区三区在线视频免费 | 国产成人自拍在线| 毛片不卡一区二区| 亚洲电影一区二区三区| 日韩一区中文字幕| 欧美国产视频在线| 久久久久久久久久久久久久久99| 91精品国产综合久久精品性色| 91美女视频网站| 国产成人aaa| 国产精品1区2区3区| 精品一区二区在线观看| 日韩va亚洲va欧美va久久| 玉足女爽爽91| 亚洲黄色在线视频| 中文字幕永久在线不卡| 国产精品久久久久久亚洲毛片| 国产清纯白嫩初高生在线观看91 | 宅男在线国产精品| 欧美日韩国产系列| 欧美日韩国产在线播放网站| 在线免费观看一区| 色悠悠久久综合| 色婷婷一区二区三区四区| 97久久精品人人澡人人爽| 99在线精品视频| 成人美女在线观看| 婷婷综合另类小说色区| 亚洲午夜精品17c| 一区二区三区欧美| 亚洲三级电影网站| 亚洲一区二区三区爽爽爽爽爽| 一区二区日韩av| 一区二区三区中文在线观看| 亚洲一区二区欧美| 污片在线观看一区二区| 日本成人在线电影网| 精品一区二区三区免费观看| 国产又粗又猛又爽又黄91精品| 国产一区亚洲一区| 成人av网站在线观看免费| 91影视在线播放| 欧美三区免费完整视频在线观看| 欧美日韩一级大片网址| 91精品免费观看| 久久综合九色综合97婷婷女人 | 国产精品18久久久久久久久久久久| 国产精品一级二级三级| 波多野结衣精品在线| 欧美日韩高清一区| 99r国产精品| 成人国产精品免费| 91亚洲午夜精品久久久久久| 91丨九色丨国产丨porny| 欧美在线一区二区| 日韩久久精品一区| 中日韩av电影| 亚洲国产成人av好男人在线观看| 免费人成网站在线观看欧美高清| 国产精品18久久久久| 91美女精品福利| 欧美一区二区观看视频| 日本一区二区动态图| 亚洲一区欧美一区| 精品亚洲porn| 99v久久综合狠狠综合久久| 91在线视频观看| 欧美日韩不卡在线| 欧美精品一区二区三区在线播放 | 亚洲国产精品人人做人人爽| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美精品丝袜中出| 欧美国产综合一区二区| 亚洲成人免费av| 岛国精品在线观看| 欧美精品在线观看一区二区| 欧美高清在线一区二区| 三级久久三级久久| av电影一区二区| 精品国产乱码久久久久久1区2区 | 欧美性极品少妇| 国产日韩欧美a| 日韩高清在线一区| 91丨九色丨蝌蚪富婆spa| 精品国产三级a在线观看| 亚洲高清免费在线| 99re6这里只有精品视频在线观看| 欧美一级片在线看| 亚洲国产日日夜夜| 成人黄色一级视频| 欧美成人欧美edvon| 香蕉加勒比综合久久| 99久久99精品久久久久久| 久久综合久久综合九色| 免费人成精品欧美精品| 欧美三级电影网| 亚洲日本青草视频在线怡红院| 国产综合一区二区| 91精品国产一区二区| 性感美女极品91精品| 色噜噜狠狠色综合欧洲selulu| 国产拍欧美日韩视频二区| 蜜臀av一区二区| 欧美一区二区三区在线观看| 一区二区三区欧美日| 91视频一区二区三区| 国产精品国产三级国产aⅴ原创 | 亚洲一区二区三区小说| 色婷婷亚洲综合| 亚洲蜜桃精久久久久久久| 91在线码无精品| 中文字幕亚洲在| 99久久精品99国产精品| 中文一区二区在线观看| 国产成人亚洲综合a∨猫咪| 久久精品无码一区二区三区| 狠狠狠色丁香婷婷综合激情| 精品欧美乱码久久久久久| 精品亚洲aⅴ乱码一区二区三区| 欧美一级二级三级乱码| 日本在线观看不卡视频| 日韩精品一区二区三区三区免费 | 粉嫩高潮美女一区二区三区| 欧美激情综合五月色丁香 | 成人天堂资源www在线| 国产三级精品视频| av网站免费线看精品| 亚洲黄色录像片| 欧美日韩高清在线| 卡一卡二国产精品| www久久精品| 成人一道本在线| 中文字幕一区二区三区精华液| eeuss鲁一区二区三区| 亚洲免费色视频| 欧美日韩国产精选| 久久精品av麻豆的观看方式| 精品裸体舞一区二区三区| 国产精一区二区三区| 国产精品色在线观看| 在线观看av不卡| 日韩电影免费在线观看网站| 精品粉嫩超白一线天av| 国产福利一区在线| 亚洲日本电影在线| 5月丁香婷婷综合| 国产不卡视频在线播放| 亚洲三级免费观看| 日韩一级免费一区| 国产iv一区二区三区| 一区二区日韩av| 欧美va在线播放| 91麻豆国产在线观看| 视频在线观看一区二区三区| 久久综合成人精品亚洲另类欧美 | 色天使色偷偷av一区二区| 日韩主播视频在线| 久久久久久久综合日本| 欧美性受xxxx黑人xyx| 久久福利资源站| 亚洲精品久久嫩草网站秘色| 日韩一区二区三区av| 暴力调教一区二区三区| 天堂在线一区二区| 欧美国产日韩亚洲一区| 欧美美女激情18p| 成人免费毛片app| 午夜电影久久久| 中文字幕在线一区二区三区| 欧美图区在线视频| 国产成人免费xxxxxxxx| 亚洲成人黄色影院| 中文欧美字幕免费| 日韩一区二区三| 91黄视频在线观看| 岛国精品在线观看| 久久成人免费日本黄色| 亚洲精品一二三四区| 久久综合成人精品亚洲另类欧美| 久久久久久久性| 欧美日韩激情一区| 99免费精品在线观看| 国产精品一区在线观看你懂的| 亚洲一二三区在线观看| 中文在线一区二区|