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

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

?? hamaro_pwrscan.c

?? QPSK Tuner details, for conexant chipset.
?? C
?? 第 1 頁 / 共 5 頁
字號:
    {
        STSDBG_WR_INT_LN("Write failed for frequency count = ", addr);
        return (False);
    }
    return (True);
}

/*****************************************************************************/
/* PWRSCAN_GetTotalFreqOffset() */
/*****************************************************************************/
static int
PWRSCAN_GetTotalFreqOffset(int center_frequency, int frequency_step)
{
    int total_freq_offset;

    total_freq_offset = center_frequency - frequency_step;
#if STS_ENABLE_VERBOSE_LOG
    STSDBG_WR_INT(" | Center = ", center_frequency);
    STSDBG_WR_INT(" | Step size = ", frequency_step);
    STSDBG_WR_INT(" | Center + step_size = ", total_freq_offset);
#endif /* STS_ENABLE_VERBOSE_LOG */
    return (total_freq_offset);
}

/*****************************************************************************/
/* PWRSCAN_WriteFreqCount() */
/*****************************************************************************/
static BOOL
PWRSCAN_WriteFreqCount(unsigned short value)
{
    if (STS_WRITE(STS_FREQ_CNT, value) == False) 
    {
        return (False);
    }
    return (True);
}

/*****************************************************************************/
/* PWRSCAN_GetInitialCenterFreq() */
/*****************************************************************************/
static int s_center_frequency;
static int
PWRSCAN_GetInitialCenterFreq(unsigned char span_mhz, int additional_offset)
{
    s_center_frequency = ((unsigned long)span_mhz * 1000000UL) / 2UL;
    s_center_frequency = (s_center_frequency + additional_offset); 
    
    return s_center_frequency;    
}
/*****************************************************************************/
/* PWRSCAN_GetNextCenterFreq() */
/*****************************************************************************/
static int
PWRSCAN_GetNextCenterFreq(unsigned short freq_count, unsigned long step_size_hz)
{
    s_center_frequency -= ((int)freq_count * (int)step_size_hz); /* next set */

    return s_center_frequency;
}

/*****************************************************************************/
/* PWRSCAN_GetInitialFreqStep() */
/*****************************************************************************/
static int s_initial_freq_step;
static int
PWRSCAN_GetInitialFreqStep(unsigned long step_size_hz, unsigned short number_freq_cnt)
{
    s_initial_freq_step = (step_size_hz * number_freq_cnt) >> 1;

    return -s_initial_freq_step; 
}

/*****************************************************************************/
/* PWRSCAN_GetReadyBitTimeout() */
/*   */
/*****************************************************************************/
static long window_length_lookup[STS_MAX_OBSERVATION_WINDOW_INDEX] = 
{
    0x200,    /* 2POW09 */
    0x400,    /* 2POW10 */
    0x800,    /* 2POW11 */
    0x1000,   /* 2POW12 */
    0x2000,   /* 2POW13 */
    0x4000,   /* 2POW14 */
    0x8000,   /* 2POW15 */
    0x10000,  /* 2POW16 */
    0x20000,  /* 2POW17 */
    0x40000,  /* 2POW18 */
    0x80000,  /* 2POW19 */
    0x100000, /* 2POW20 */
    0x200000, /* 2POW21 */
    0x400000, /* 2POW22 */
    0x800000, /* 2POW23 */
    0x1000000 /* 2POW24 */
};
static long 
PWRSCAN_GetReadyBitTimeout(unsigned short observation_window, unsigned long match_filter_clock_khz)
{
    long delay_msec, delay_buffer;

    if (observation_window > (STS_MAX_OBSERVATION_WINDOW_INDEX-1))
    {
        return 0;
    }

    delay_msec   = (window_length_lookup[observation_window] / (long)match_filter_clock_khz) + 1L;
    
    delay_buffer = delay_msec / 20; /* 5% buffer */

    delay_msec = delay_msec + delay_buffer;
    
    /* STSDBG_WR_INT_LN("Ready bit timeout (msec) = ", delay_msec); */

    return (delay_msec);
}

static void 
PWRSCAN_Sleep(clock_t wait_msec)
{
   clock_t goal;

   goal = wait_msec + clock();
   while( goal > clock() )
   { /* loop until timeout */
   }
}

/*****************************************************************************/
/* PWRSCAN_WaitForMeasurement() */
/*   */
/*****************************************************************************/
static long delay = 0;
static BOOL
PWRSCAN_WaitForMeasurement()
{   
    unsigned short read_count;
    int  forever = 1;
#if HAMARO_WIN_DEBUG
    unsigned short read_val1 = 0, read_val2 = 0; 
#endif /* HAMARO_WIN_DEBUG */
    if (STS_WRITE(STS_AUTO_MODE, 0) == False)
    {
        return (False);
    }

    /* Wait for STS ready (STS Page=0, Add=0x05) */
    read_count = 0;
    do {
        delay = PWRSCAN_GetReadyBitTimeout(s_power_scan_data.power_scan_input.observation_window, s_power_scan_data.power_scan_input.symbol_rate_khz);
        
        PWRSCAN_Sleep(delay);    
        
        PWRSCAN_CheckErrors(); 

#if HAMARO_WIN_DEBUG
        if (STS_READ(STS_LEN, &read_val1) == False) 
        {
            return (False);
        }

        if (STS_READ(STS_LEN_SEL, &read_val2) == False) 
        {
            return (False);
        }

        if (s_power_scan_data.power_scan_input.observation_window != read_val2)
        {
            STSDBG_WR_UNSIGNED("ERROR: STS_LEN_SEL = ", read_val2);
            STSDBG_WR_UNSIGNED_LN(" does not match programmed value = ", s_power_scan_data.power_scan_input.observation_window);
        }
        if (read_val1 != read_val2)
        {
            STSDBG_WR_UNSIGNED("ERROR: STS_LEN_SEL = ", read_val2);
            STSDBG_WR_UNSIGNED_LN(" does not match STS_LEN = ", read_val1);
        }
#endif /* HAMARO_WIN_DEBUG */

        if (PWRSCAN_IsReady() == True)
        {
#if STS_ENABLE_VERBOSE_LOG
            STSDBG_WR_UNSIGNED("Total delay = ", delay);
            STSDBG_WR_UNSIGNED(" x ", read_count+1);
            STSDBG_WR_STR(" times ", True);
#endif /* STS_ENABLE_VERBOSE_LOG */
            break;
        }

        if (read_count == STS_WAIT_FOR_MEASUREMENT_TIMEOUT)
        {
            STSDBG_WR_STR("PWRSCAN_WaitForMeasurement::STS_WAIT_FOR_MEASUREMENT_TIMEOUT", True);
            return (False);
        }
        read_count++;
    } while (forever);

    return (True);
}

/* Power Scan: Reset state */
extern unsigned short s_max_raw_power_reading;
extern unsigned short s_sub_max_raw_power_reading;

static void   
PWRSCAN_ResetEnter()
{
    unsigned long symbol_rate_mhz;
    unsigned long step_size_khz;

    s_power_scan_data.delta_abs_freq_khz = 0;
    s_power_scan_data.b_last_set = False;
    s_power_scan_data.forever = 1;

    p_power_reading = 0;
    p_freq_reading  = 0;
    p_filled_buffer_length = 0;

    s_power_scan_data.b_abort = False;
    s_continue_scan = False;
    s_stop = False;

    symbol_rate_mhz = s_power_scan_data.power_scan_input.symbol_rate_khz/1000;
    if (symbol_rate_mhz < STS_MIN_MATCH_FILTER_CLK_MHZ)
    {
        s_power_scan_data.power_scan_input.symbol_rate_khz = STS_MIN_MATCH_FILTER_CLK_MHZ * 1000;
    }
    else if (symbol_rate_mhz > STS_MAX_MATCH_FILTER_CLK_MHZ)
    {
        s_power_scan_data.power_scan_input.symbol_rate_khz = STS_MAX_MATCH_FILTER_CLK_MHZ * 1000;
    }

    step_size_khz   = s_power_scan_data.power_scan_input.step_size_hz/1000;
    if (step_size_khz < STS_MIN_STEP_SIZE_KHZ) /* cannot do steps less than 10khz */
    {
        s_power_scan_data.power_scan_input.step_size_hz = STS_MIN_STEP_SIZE_KHZ * 1000;
    }
    else if (step_size_khz > STS_MAX_STEP_SIZE_KHZ) /* 1Mhz. */
    {
        s_power_scan_data.power_scan_input.step_size_hz = STS_MAX_STEP_SIZE_KHZ * 1000;
    }

    s_power_scan_data.number_freq_cnt = PWRSCAN_GetNumFreqCount((unsigned char)(s_power_scan_data.power_scan_input.symbol_rate_khz/1000), 
                                                                (unsigned short)(s_power_scan_data.power_scan_input.step_size_hz/1000));

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
        p_filled_buffer_length = &s_power_spectrum_data.filled_buffer_len;
        s_power_scan_data.max_index = STS_MAX_INDEX;
        p_max_pwr_reading = &s_max_raw_power_reading;
        p_agcacc = &s_power_spectrum_data.agcacc;
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading  = &s_power_spectrum_data.sub_abs_freq[0]; 
        p_filled_buffer_length = &s_power_spectrum_data.filled_sub_buffer_len;
        s_power_scan_data.max_index = STS_MAX_SUB_INDEX;
        p_max_pwr_reading = &s_sub_max_raw_power_reading;
        p_agcacc = &s_power_spectrum_data.sub_agcacc;
    }

    if (s_power_scan_data.power_scan_input.search_span_mhz > STS_MAX_SPAN_MHZ)
    {
        s_power_scan_data.power_scan_input.search_span_mhz = STS_MAX_SPAN_MHZ;
    }

    s_power_scan_data.max_number_of_sets = PWRSCAN_GetMaxNumberSets(s_power_scan_data.power_scan_input.search_span_mhz, 
                                                                    s_power_scan_data.number_freq_cnt, 
                                                                    s_power_scan_data.power_scan_input.step_size_hz);  

    PWRSCAN_ResetBuffers();

    if (s_power_scan_data.number_freq_cnt > STS_MAX_FREQ_MEM_REGISTERS) /* max registers */ 
    {
        s_power_scan_data.b_abort = True;
        return;
    }

    if (s_power_scan_data.power_scan_input.search_span_mhz % 2)
    {
        s_power_scan_data.power_scan_input.search_span_mhz++;
    }

    PWRSCAN_ProgramPLLMult(STS_PLL_MULT);

    /* 3)  Set symbol rate */
    HAMARO_SetSymbolRate(hamaro_nim_list.nim[0], s_power_scan_data.power_scan_input.symbol_rate_khz);

    PWRSCAN_Enable(True); 
}


static BOOL   
PWRSCAN_Reset2TuneCriterion()
{
    return (True);
}

static STATE* 
PWRSCAN_Reset2Tune()
{
    DBG_CHECK_FSM_LIMITS(&pwrscan_tune_state);
	return &pwrscan_tune_state;
}

static BOOL   
PWRSCAN_Reset2AbortCriterion()
{
    if (s_power_scan_data.b_abort == True)
    {
        return (True);
    }
    return (False);
}

static STATE* 
PWRSCAN_Reset2Abort()
{
    DBG_CHECK_FSM_LIMITS(&pwrscan_abort_state);
	return &pwrscan_abort_state;
}


/* Power scan: Tune state */
static void   
PWRSCAN_TuneEnter()
{    
    s_power_scan_data.number_of_segments++;

    if (s_power_scan_data.power_scan_input.tuner_freq_hz > SCAN_HIGH_LIMIT) 
    {
        s_power_scan_data.b_last_set = True;
        return;
    }

    s_power_scan_data.power_scan_input.tuner_freq_hz += ((unsigned long)s_power_scan_data.power_scan_input.search_span_mhz * 1000000UL) >> 1UL; 

    if (s_power_scan_data.power_scan_input.tuner_freq_hz < SCAN_LOW_LIMIT)
    {
        s_power_scan_data.b_abort = True;
        return;
    }

    /* 1)  For channel sensing, we need to open the tuner anti-alias filter to maximum. */
    /* Anti-alias Filter Bandwidth = Acquisition Freq Offset + roll-off * Symbol Rate   */
    if (s_power_scan_data.power_scan_input.bw_symbol_rate_mhz > STS_MAX_SYMBOL_RATE_MHZ)
    {
        s_power_scan_data.power_scan_input.bw_symbol_rate_mhz = STS_MAX_SYMBOL_RATE_MHZ;
    }

    if (s_power_scan_data.power_scan_input.bw_symbol_rate_mhz == STS_MAX_SYMBOL_RATE_MHZ) /* open max bandwidth */
    {
        PWRSCAN_OpenBandwidth(675UL, STS_MAX_SYMBOL_RATE_MHZ*1000UL, 5000L);
    }
    else
    {
        PWRSCAN_OpenBandwidth(675UL, (unsigned long)(s_power_scan_data.power_scan_input.bw_symbol_rate_mhz)*1000UL, 0L);
    }    

    PWRSCAN_AAGCControl(False); /* normal operation */

    s_power_scan_data.pll_lock = 0;
    s_power_scan_data.actual_tuner_frequency = 0;

    /* 4)  Set Tuner frequency */
    PWRSCAN_SetTunerFrequency(s_power_scan_data.power_scan_input.tuner_freq_hz, 
                             &s_power_scan_data.pll_lock, 
                             &s_power_scan_data.actual_tuner_frequency);

    s_power_scan_data.tuner_freq_khz = (int)(s_power_scan_data.power_scan_input.tuner_freq_hz/1000);
}

static BOOL   
PWRSCAN_Tune2AbortCriterion()
{
    if (s_power_scan_data.b_abort == True)
    {
        return (True);
    }
    return (False);
}

static STATE* 
PWRSCAN_Tune2Abort()
{
    DBG_CHECK_FSM_LIMITS(&pwrscan_abort_state);
	return &pwrscan_abort_state;
}

static BOOL   
PWRSCAN_Tune2StartCriterion()
{
    return (True);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
看电影不卡的网站| 国产一区二区女| 欧美久久久影院| 国产一区二区毛片| 亚洲成人1区2区| 欧美国产1区2区| 欧美精品亚洲二区| 91丨九色丨蝌蚪丨老版| 国内成人精品2018免费看| 亚洲一区二区三区四区中文字幕| 久久在线观看免费| 欧美片网站yy| 色噜噜狠狠色综合欧洲selulu| 另类小说色综合网站| 亚洲一区在线看| 国产精品久久久久久久午夜片| 欧美一级在线观看| 欧美午夜一区二区| 91在线国产观看| 国产v综合v亚洲欧| 黄一区二区三区| 日韩有码一区二区三区| 亚洲一区国产视频| 亚洲男人都懂的| 亚洲三级理论片| 国产精品久久久久久久久免费桃花| 日韩视频123| 在线电影一区二区三区| 在线观看av不卡| 色综合咪咪久久| 成人福利视频在线看| 国产东北露脸精品视频| 韩日欧美一区二区三区| 国产一区激情在线| 国内外成人在线| 国内精品写真在线观看| 精品一区二区三区免费观看| 肉色丝袜一区二区| 日韩国产欧美三级| 日韩中文字幕1| 日本不卡在线视频| 激情综合网天天干| 精东粉嫩av免费一区二区三区 | 丝袜国产日韩另类美女| 一区二区三区电影在线播| 亚洲人精品一区| 一区二区三区四区在线| 一区二区三区欧美激情| 亚洲一区免费视频| 日韩va欧美va亚洲va久久| 日本三级韩国三级欧美三级| 日本网站在线观看一区二区三区| 日本成人在线网站| 国产一区二区美女| www.久久精品| 日本精品一区二区三区高清| 日本高清成人免费播放| 欧美日韩激情一区| 69久久99精品久久久久婷婷| 日韩欧美一区中文| 国产精品网站一区| 亚洲一区二区三区四区不卡| 日韩成人免费看| 国产毛片精品一区| 色偷偷88欧美精品久久久| 欧美老人xxxx18| 久久日韩粉嫩一区二区三区| 国产精品久久久久9999吃药| 一区二区三区高清| 蜜桃视频在线一区| 成人黄色片在线观看| 欧美三级乱人伦电影| 日韩欧美高清dvd碟片| 国产亚洲欧美中文| 亚洲精品国产视频| 免费人成网站在线观看欧美高清| 国内精品国产三级国产a久久| kk眼镜猥琐国模调教系列一区二区| 91久久免费观看| 日韩欧美中文字幕一区| 国产精品嫩草99a| 亚洲图片一区二区| 国产精品性做久久久久久| 色婷婷av一区二区三区软件| 欧美精品丝袜中出| 国产精品久久久久永久免费观看| 午夜欧美在线一二页| 国产福利精品导航| 制服丝袜成人动漫| 国产精品国产三级国产aⅴ无密码| 亚洲成在人线在线播放| 国产高清亚洲一区| 91精品国产福利| **性色生活片久久毛片| 久久国产精品72免费观看| 色噜噜狠狠成人中文综合| 久久婷婷色综合| 亚洲成av人**亚洲成av**| 风流少妇一区二区| 欧美剧情电影在线观看完整版免费励志电影| 精品999在线播放| 午夜精品福利久久久| eeuss鲁片一区二区三区在线看| 777欧美精品| 亚洲免费在线电影| 国产精品91一区二区| 91麻豆精品国产91久久久久久久久 | 日韩—二三区免费观看av| 成人激情图片网| www激情久久| 全国精品久久少妇| 在线免费不卡视频| 亚洲女性喷水在线观看一区| 久久99国产精品免费| 欧美日韩免费不卡视频一区二区三区| 国产精品嫩草影院com| 国产精品白丝jk黑袜喷水| 3atv一区二区三区| 亚洲精品美国一| www.激情成人| 国产精品久久久久久久裸模| 国产盗摄一区二区三区| 欧美va日韩va| 精品一区二区三区视频 | 亚洲天堂2016| av在线免费不卡| 国产精品素人视频| 国产suv精品一区二区6| 久久久午夜精品理论片中文字幕| 免费观看一级欧美片| 欧美一区二区视频在线观看2022 | 亚洲激情男女视频| 99久久久精品| 亚洲欧洲另类国产综合| 波多野结衣中文字幕一区| 中文字幕第一区第二区| 风流少妇一区二区| 国产精品不卡一区| 91香蕉视频污在线| 亚洲免费视频成人| 欧美在线制服丝袜| 亚洲18色成人| 91精品国产一区二区三区香蕉| 日韩中文字幕91| 欧美va天堂va视频va在线| 国产精品一区二区不卡| 欧美激情在线看| 93久久精品日日躁夜夜躁欧美| 亚洲日本一区二区三区| 色婷婷一区二区| 五月激情综合婷婷| 日韩欧美视频一区| 国产精品 欧美精品| 中文成人综合网| 色中色一区二区| 亚洲一区影音先锋| 欧美精品乱码久久久久久按摩| 日韩成人伦理电影在线观看| 精品电影一区二区| 懂色av一区二区在线播放| 国产精品久久久久久户外露出| 在线亚洲精品福利网址导航| 亚洲成人一区二区| 日韩精品一区二区三区视频播放 | 97精品视频在线观看自产线路二| 亚洲精选视频免费看| 欧美日韩三级在线| 久久99最新地址| 自拍偷拍亚洲激情| 欧美日韩一区高清| 国产一区二区影院| 亚洲猫色日本管| 欧美一区二区三区成人| 国产成人综合在线播放| 亚洲欧美视频一区| 日韩一二三区不卡| 成人av免费在线播放| 午夜久久久久久久久久一区二区| 欧美videos中文字幕| 91色.com| 美女视频第一区二区三区免费观看网站| 久久久综合网站| 日本韩国欧美一区二区三区| 蜜桃视频在线观看一区二区| 国产精品看片你懂得| 欧美精品1区2区3区| 国产精品456露脸| 亚洲第一福利一区| 亚洲国产成人自拍| 91麻豆精品91久久久久同性| 粉嫩高潮美女一区二区三区| 天使萌一区二区三区免费观看| 久久久777精品电影网影网 | 免费观看30秒视频久久| 国产精品少妇自拍| 日韩精品一区二区三区中文不卡| 91视频免费看| 国产资源精品在线观看| 丝袜诱惑亚洲看片| 蜜乳av一区二区|