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

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

?? driv0299.c

?? 這是DVB tuner驅動部分和其它相關的源碼和一些技術資料文檔.
?? C
?? 第 1 頁 / 共 3 頁
字號:
                           (pParams->DerotFreq * pParams->Mclk)/1000); /* cast to eliminate compiler warning --SFS */	if((TransponderFrequency >= pParams->BaseFreq - RangeOffset)       && (TransponderFrequency <= pParams->BaseFreq + RangeOffset))        pParams->State = RANGEOK;    else        pParams->State = OUTOFRANGE;	return pParams->State;}/****************************************************--FUNCTION  ::    CarrierNotCentered--ACTION    ::    Check if the carrier is correctly centered--PARAMS IN ::--PARAMS OUT::--RETURN    ::    1 if not centered, 0 otherwise--***************************************************/int CarrierNotCentered(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams, int AllowedOffset){    int NotCentered = 0,    DerotFreq,    Fs;    Fs = (int)(CarrierWidth(pParams->SymbolRate, pParams->RollOff)); /* cast to eliminate compiler warning --SFS */    DerotFreq = ABS((int)pParams->DerotFreq * (int)pParams->Mclk); /* cast with macro to eliminate compiler warning --SFS */    if((pParams->TunerIF == 0) && (Fs < 4000000))        NotCentered = (int)((pParams->TunerBW - Fs)/4) ; /* cast to eliminate compiler warning --SFS */    else        NotCentered = (((int)pParams->TunerBW/2 - DerotFreq - Fs/2) < AllowedOffset) &&                      (DerotFreq > pParams->TunerStep);  /* cast to eliminate compiler warning --SFS */    return NotCentered;}/****************************************************--FUNCTION  ::    TunerCentering--ACTION    ::    Optimisation of the tuner position to allow frequency variations--PARAMS IN ::    pParams--PARAMS OUT::    pResult--RETURN    ::    DATAOK if success--**************************************************/SIGNALTYPE TunerCentering(STV0299_ControlBlock_t *Dev_p,                          SEARCHPARAMS *pParams,                          SEARCHRESULT *pResult,                          int AllowedOffset){    int /* NotCentered = 0, */ /*NotCentered not used in this function; compiler warning --SFS */		DerotFreq,MinOffset,MaxOffset,		CentringFrequency,		TransponderFrequency,		Fs,sign;    Fs = (int)CarrierWidth(pParams->SymbolRate,pParams->RollOff); /* cast to eliminate compiler warning --SFS */    DerotFreq = ABS((int)pParams->DerotFreq * (int)pParams->Mclk);/* cast to eliminate compiler warning --SFS */	if((pParams->TunerIF == 0) && (Fs < 4000000))		MinOffset = 2000000;	else		MinOffset = 0;	MaxOffset = MAX((int)(pParams->TunerBW)/2 - Fs/2- AllowedOffset,MinOffset + (int)(pParams->TunerStep));  /* casts to eliminate compiler warning --SFS */	if(!INRANGE(MinOffset,DerotFreq,MaxOffset) || (CheckData(Dev_p, pParams)==NODATA))	{		sign = (pParams->DerotFreq > 0) ? 1:-1;		TransponderFrequency = (int)(pParams->Frequency + (pParams->DerotFreq * pParams->Mclk)/1000); /* cast to eliminate compiler warning --SFS */		CentringFrequency = TransponderFrequency + (sign*MinOffset)/1000;        TNR_SetFrequency(TNR_HANDLE(Dev_p),                         CentringFrequency,                         (U32 *)&CentringFrequency);        WaitTuner(Dev_p, 100);                 /*	Is tuner Locked	? (wait 100 ms maxi)	*/		/* Reset Derotator	*/		pParams->DerotFreq = (short int)(((TransponderFrequency - CentringFrequency)*1000)/(int)pParams->Mclk); /* casts to eliminate compiler warning --SFS */		pParams->Frequency = CentringFrequency;		pParams->Direction = 1;		FieldSetVal(Dev_p, DEROTATORFREQUENCYMSB,MSB(pParams->DerotFreq));		FieldSetVal(Dev_p, DEROTATORFREQUENCYLSB,LSB(pParams->DerotFreq));        RegSetRegisters(Dev_p, R_CFRM,2);        /*	Wait for agc1,agc2 and timing loop	*/        SystemWaitFor(pParams->Tagc1 + pParams->Tagc2 + pParams->Ttiming);		if(SearchCarrier(Dev_p, pParams, pResult) == CARRIEROK)	/*	Search for carrier	*/			SearchData(Dev_p, pParams, pResult);				/*	Search for data	*/	}	return pParams->State;}/****************************************************--FUNCTION  ::    FirstSubRange--ACTION    ::    Compute the first SubRange of the search--PARAMS IN ::    pParams->SearchRange--PARAMS OUT::    pParams->SubRange--RETURN    ::    NONE--***************************************************/SIGNALTYPE FirstSubRange(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams){    int maxsubrange;	maxsubrange = (int)(pParams->TunerBW - CarrierWidth(pParams->SymbolRate,pParams->RollOff)/2); /* cast to eliminate compiler warning --SFS */	pParams->SubRange = MIN(pParams->SearchRange,maxsubrange);	pParams->Frequency = pParams->BaseFreq;	pParams->TunerOffset = 0L;	pParams->SubDir = 1;	if(pParams->TunerBW > CarrierWidth(pParams->SymbolRate,pParams->RollOff/2))        pParams->State = BWOK;    else        pParams->State = BWTOONARROW;    return pParams->State;}/****************************************************--FUNCTION  ::    NextSubRange--ACTION    ::    Compute the next SubRange of the search--PARAMS IN ::    Frequency    ->    Start frequency--                pParams->SearchRange--PARAMS OUT::    pParams->SubRange--RETURN    ::    NONE--***************************************************/void NextSubRange(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams){    long OldSubRange;    if(pParams->SubDir > 0)    {        OldSubRange = pParams->SubRange;        pParams->SubRange = MIN((pParams->SearchRange/2) -                                (pParams->TunerOffset + pParams->SubRange/2),                                pParams->SubRange);        pParams->TunerOffset += (OldSubRange + pParams->SubRange)/2;    }    pParams->Frequency = pParams->BaseFreq + (pParams->SubDir * pParams->TunerOffset)/1000;    pParams->SubDir = -pParams->SubDir;}/*****************************************************--FUNCTION  ::    AutoSearchAlgo--ACTION    ::    Search for Signal, Timing, Carrier and then data at a given Frequency,--                in a given range--PARAMS IN ::    NONE--PARAMS OUT::    NONE--RETURN    ::    Type of the founded signal (if any)--***************************************************/SIGNALTYPE AutoSearchAlgo(STV0299_ControlBlock_t *Dev_p){    int        errorrate,sn,to,hy;    SEARCHPARAMS *pParams;    SEARCHRESULT *pResult;    pParams = &Dev_p->Params;    pResult = &Dev_p->Result;    pParams->BaseFreq = pParams->Frequency;    /*    Insert I2C access here    */    RegTriggerOn(Dev_p);    /*______________________________________TRIGGER____________________________________________*/    RegSetSymbolRate(Dev_p, pParams->SymbolRate);    /*    Set the symbol rate    */    RegGetOneRegister(Dev_p, R_PR);    RegGetOneRegister(Dev_p, R_VSEARCH);    /*    Get fields value    */    sn=FieldGetVal(Dev_p, SN);    to=FieldGetVal(Dev_p, TO);    hy=FieldGetVal(Dev_p, H);    errorrate=FieldGetVal(Dev_p, RATE);    RegTriggerOff(Dev_p);    /*______________________________________TRIGGER____________________________________________*/    /*    Initial calculations    */    RegTriggerOn(Dev_p);    /*______________________________________TRIGGER____________________________________________*/    pParams->DerotStep = (short int)(pParams->DerotPercent*(pParams->SymbolRate/1000L)/pParams->Mclk);    /*    saut de DerotStep/1000 * Fsymbol    */   /* cast to eliminate compiler warning --SFS */    pParams->Ttiming = (short int)(CalcTimingTimeConstant(pParams->SymbolRate)); /* cast to eliminate compiler warning --SFS */    pParams->Tderot = (short int)(2 + 20 * CalcDerotTimeConstant(pParams->SymbolRate)); /* cast to eliminate compiler warning --SFS */    pParams->Tdata = (short int)(2 * CalcDataTimeConstant(errorrate,sn,to,hy,pParams->SymbolRate)); /* cast to eliminate compiler warning --SFS */    RegTriggerOff(Dev_p);    /*______________________________________TRIGGER____________________________________________*/    if (FirstSubRange(Dev_p, pParams) == BWOK)    {        do        {            /*    Initialisations    */            FieldSetVal(Dev_p, DEROTATORFREQUENCYMSB,0);            FieldSetVal(Dev_p, DEROTATORFREQUENCYLSB,0);            RegSetRegisters(Dev_p, R_CFRM,2);         /*    Reset of the derotator frequency    */            RegSetField(Dev_p, RTF, 0);            RegSetField(Dev_p, CFD_ALGO, 1);            pParams->DerotFreq = 0;            pParams->State = NOAGC1;            RegTriggerOn(Dev_p);        /*______________________________________TRIGGER____________________________________________*/            TNR_SetFrequency(TNR_HANDLE(Dev_p), (U32)pParams->Frequency,                             (U32 *)&pParams->Frequency);                  /* cast on pParams->Frequency to eliminate compiler warning --SFS */            RegTriggerOff(Dev_p);    /*______________________________________TRIGGER____________________________________________*/            /*    Temporisations    */            RegTriggerOn(Dev_p);    /*______________________________________TRIGGER____________________________________________*/            SystemWaitFor(pParams->Tagc1 + pParams->Tagc2 + pParams->Ttiming);    /*    Wait for agc1,agc2 and timing loop    */            WaitTuner(Dev_p, 100);        /*    Is tuner Locked    ? (wait 100 ms maxi)    */            RegTriggerOff(Dev_p);    /*______________________________________TRIGGER____________________________________________*/            RegTriggerOn(Dev_p);    /*______________________________________TRIGGER____________________________________________*/            if(CheckAgc1(Dev_p, pParams)>AGC1SATURATION)            {                /*    There is signal in the band    */                if(pParams->SymbolRate <= pParams->SubRange/2L)                    SearchTiming(Dev_p, pParams,pResult); /*    For low rates (SCPC)    */                else                    CheckTiming(Dev_p, pParams);        /*    For high rates (MCPC)    */                if(pParams->State == TIMINGOK)                {                    if(SearchCarrier(Dev_p, pParams,pResult) == CARRIEROK)    /*    Search for carrier    */                    {                        if(SearchData(Dev_p, pParams,pResult) == DATAOK)    /*    Check for data    */                        {                            if(Dev_p->ScanMode != SCAN)                                TunerCentering(Dev_p, pParams, pResult, 200000);                            if(CheckRange(Dev_p, pParams,pResult) == RANGEOK)                            {                                pResult->Frequency = pParams->Frequency +                                    (pParams->DerotFreq*(pParams->Mclk)/1000);                                pResult->PunctureRate = RegGetField(Dev_p, CPR);                            }                        }                    }                }            }            if(pParams->State != RANGEOK)                NextSubRange(Dev_p, pParams);            RegTriggerOff(Dev_p);    /*______________________________________TRIGGER____________________________________________*/        }        while(pParams->SubRange && pParams->State!=RANGEOK);    }    pResult->SignalType = pParams->State;    return    pParams->State;}/*****************************************************--FUNCTION  ::    SetLnb--ACTION    ::    set the Lnb--PARAMS IN ::    Lnb    -> true for LnbHigh, false for LnbLow--PARAMS OUT::    NONE--RETURN    ::    NONE--***************************************************/void SetLnb(STV0299_ControlBlock_t *Dev_p, int Lnb){   /* RegSetField(Dev_p, OP0VALUE,Lnb); */#if defined(mb5518)/*    RegSetField(Dev_p, OP0VALUE,Lnb);*/  /* For EVAL5508 */    if (Lnb == 0)                       /* FORCE */    {    /* Low band -> no 22KHz tone */        RegSetField(Dev_p, DISEQCMODE, 0x0);    }    if (Lnb == 1)    {    /* High band -> 22KHz tone */        RegSetField(Dev_p, DISEQCMODE, 0x3);    }#else    RegSetField(Dev_p, OP0VALUE,Lnb);#endif}/*****************************************************--FUNCTION  ::    CarrierTracking--ACTION    ::    Track the carrier--PARAMS IN ::    NONE--PARAMS OUT::    NONE--RETURN    ::    New frequency of the carrier--***************************************************/int CarrierTracking(STV0299_ControlBlock_t *Dev_p){    if(Dev_p->Result.SignalType == RANGEOK)        TunerCentering(Dev_p, &Dev_p->Params, &Dev_p->Result, 2000000);    return (int)Dev_p->Params.Frequency;}/*****************************************************--FUNCTION  ::    SetPolarization--ACTION    ::    set the polarization--PARAMS IN ::    Polarization    ->    Polarization--PARAMS OUT::    NONE--RETURN    ::    NONE--***************************************************/void SetPolarization(STV0299_ControlBlock_t *Dev_p, POLARIZATION Polarization){    if(Polarization == VERTICAL)        RegSetField(Dev_p, LOCKOUTPUT,0);    else        RegSetField(Dev_p, LOCKOUTPUT,1);}void GetNoiseEstimator(STV0299_ControlBlock_t *Dev_p, U32 *Noise_p, U32 *Ber_p){    U32 LutHigh, LutLow, Real, RealLow, RealHigh, CN, Ber;    LUT_t *Lut_p;    RegGetRegisters(Dev_p, R_NIRH, 2);    Real = MAKEWORD(FieldGetVal(Dev_p, NOISEINDICATORMSB),                    FieldGetVal(Dev_p, NOISEINDICATORLSB));    Lut_p = (LUT_t *)SignalNoiseLUT;    while (Lut_p->Real >= Real && Lut_p->Real != ((U32)-1))        Lut_p++;    if (Lut_p->Real != ((U32)-1))    {        RealHigh = (U32)(Lut_p-1)->Real;        LutLow = (U32)(Lut_p-1)->Lookup;        RealLow = (U32)Lut_p->Real;        LutHigh = (U32)Lut_p->Lookup;        CN = INTERPOLATE(-LutLow, -LutHigh, -RealLow, -RealHigh, -Real);    }    else        CN = 0;    Lut_p = (LUT_t *)BerLUT;    while (Lut_p->Real >= Real && Lut_p->Real != ((U32)-1))        Lut_p++;    if (Lut_p->Real != ((U32)-1))    {        RealHigh = (U32)(Lut_p-1)->Real;        LutLow = (U32)Lut_p->Lookup;        RealLow = (U32)Lut_p->Real;        LutHigh = (U32)(Lut_p-1)->Lookup;        Ber = INTERPOLATE(LutLow, LutHigh, RealLow, RealHigh, Real);    }    else        Ber = 200000;    *Ber_p = Ber;    *Noise_p = -CN;}U8 GetPowerEstimator(STV0299_ControlBlock_t *Dev_p){    S32 LutHigh, LutLow, Real, RealLow, RealHigh;    LUT_t *Lut_p = (LUT_t *)AgcLUT;    U8 Power;    Real = RegGetField(Dev_p, AGCINTEGRATORVALUE);    while (Lut_p->Real >= Real && Lut_p->Real != ((U32)-1))        Lut_p++;    if (Lut_p->Real != ((U32)-1))    {        RealHigh = (Lut_p-1)->Real;        LutLow = Lut_p->Lookup;        RealLow = Lut_p->Real;        LutHigh = (Lut_p-1)->Lookup;        Power = (U8)INTERPOLATE(LutLow, LutHigh, RealLow, RealHigh, Real);    }    else        Power = 255;    return Power;}/* End of driv0299.c */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩你懂得| 五月天亚洲婷婷| 亚洲成a人v欧美综合天堂 | 亚洲自拍偷拍图区| 久久69国产一区二区蜜臀| 成人久久久精品乱码一区二区三区| 欧美一区二区在线免费观看| 亚洲老妇xxxxxx| 成人深夜福利app| 久久久精品综合| 美女在线观看视频一区二区| 日本道精品一区二区三区| 中文字幕成人av| 国产精品原创巨作av| 日韩三级视频在线观看| 亚洲福中文字幕伊人影院| 91免费观看国产| 国产精品女上位| 豆国产96在线|亚洲| 亚洲精品在线电影| 麻豆国产精品官网| 欧美成人艳星乳罩| 美腿丝袜亚洲综合| 日韩午夜激情电影| 美腿丝袜亚洲一区| 精品国产伦一区二区三区观看体验| 天天免费综合色| 欧美电影一区二区| 日本aⅴ精品一区二区三区| 337p亚洲精品色噜噜噜| 天天综合天天做天天综合| 欧美日本乱大交xxxxx| 五月天丁香久久| 欧美一区二区三区播放老司机| 免费观看一级特黄欧美大片| 日韩欧美色电影| 久久91精品久久久久久秒播| 国产无一区二区| 成人国产精品免费| 亚洲免费观看高清完整版在线 | 国产99久久久国产精品潘金网站| 国产蜜臀97一区二区三区| 国产suv一区二区三区88区| 国产精品免费视频一区| 在线视频国产一区| 日韩国产成人精品| 国产日韩欧美一区二区三区综合| 丁香啪啪综合成人亚洲小说| 日韩美女视频19| 欧美欧美欧美欧美| 国产精品自在在线| 亚洲免费资源在线播放| 91麻豆精品国产自产在线观看一区| 黄色小说综合网站| 1024亚洲合集| 欧美一区二区高清| 波多野结衣在线一区| 亚洲资源在线观看| 久久久亚洲精华液精华液精华液| 成人午夜视频在线| 亚洲国产精品一区二区尤物区| 欧美电影免费提供在线观看| 国产99久久精品| 日韩高清欧美激情| 欧美激情一二三区| 51精品久久久久久久蜜臀| 波多野结衣欧美| 美女看a上一区| 亚洲精品videosex极品| 精品精品欲导航| 欧美性大战久久久久久久| 国产一区二区不卡在线| 亚洲一区欧美一区| 国产女人18水真多18精品一级做| 欧美色综合天天久久综合精品| 国产一区二区三区综合| 亚洲国产日韩av| 国产午夜精品在线观看| 欧美一区二区精品在线| 91久久一区二区| 夫妻av一区二区| 免费欧美在线视频| 亚洲一级电影视频| 国产精品伦一区二区三级视频| 在线成人av网站| 色噜噜狠狠成人网p站| 国产精品主播直播| 免费在线看一区| 午夜精品123| 一区二区在线观看视频| 综合电影一区二区三区 | 国产精品美女www爽爽爽| 2024国产精品| 日韩区在线观看| 欧美精品一卡二卡| 色偷偷久久一区二区三区| 国产成a人亚洲| 国产成人av一区二区三区在线| 久久91精品国产91久久小草 | 久久蜜桃av一区精品变态类天堂 | 欧美人xxxx| 欧美午夜宅男影院| 欧美性色综合网| 一本色道a无线码一区v| 一本色道久久综合精品竹菊| 91浏览器入口在线观看| 99视频在线观看一区三区| 不卡区在线中文字幕| 成人丝袜高跟foot| 成人美女视频在线观看18| 成人激情小说网站| 97超碰欧美中文字幕| 色狠狠桃花综合| 欧美日韩视频第一区| 欧美日韩情趣电影| 日韩一级免费一区| 欧美成人精品高清在线播放| 久久欧美一区二区| 国产精品理伦片| 一区二区三区在线观看欧美| 亚洲国产va精品久久久不卡综合| 午夜在线成人av| 久久国产日韩欧美精品| 国产成人综合精品三级| 成人小视频免费在线观看| heyzo一本久久综合| 色成年激情久久综合| 精品视频全国免费看| 欧美一区二区三区性视频| 久久综合色播五月| 国产精品美女一区二区在线观看| 日韩一区日韩二区| 亚洲国产精品一区二区尤物区| 日韩成人av影视| 国产精品99久久久久久宅男| 不卡一区中文字幕| 欧美精品色综合| 国产欧美一区二区三区网站| 伊人夜夜躁av伊人久久| 麻豆国产欧美一区二区三区| 成人精品gif动图一区| 欧美色图在线观看| 久久久久久夜精品精品免费| 亚洲精品国产品国语在线app| 免费人成网站在线观看欧美高清| 成人动漫在线一区| 91精品国产色综合久久不卡蜜臀 | 久久久久久**毛片大全| 亚洲色图20p| 韩国毛片一区二区三区| 91老司机福利 在线| 精品国产伦一区二区三区观看方式 | 欧美一区二区成人| 国产欧美综合色| 亚洲一区成人在线| 成人在线综合网| 欧美精品在线视频| 亚洲色图清纯唯美| 国产乱子伦视频一区二区三区| 日本韩国欧美在线| 久久精品日产第一区二区三区高清版| 亚洲欧美视频在线观看视频| 韩国女主播成人在线观看| 91精品国产欧美一区二区成人| 中文字幕乱码日本亚洲一区二区| 日韩精品91亚洲二区在线观看| 成人永久aaa| 精品福利一二区| 日韩二区三区在线观看| 91丨九色丨国产丨porny| 久久久蜜臀国产一区二区| 五月天激情小说综合| 一本色道综合亚洲| 中文字幕一区二区三区不卡在线 | 欧美日精品一区视频| 国产精品美女一区二区| 国产精品一区二区久激情瑜伽| 制服丝袜av成人在线看| 亚洲福利视频一区| 91久久精品一区二区三区| 国产精品美女一区二区在线观看| 国产美女av一区二区三区| 精品久久久久久久久久久久久久久久久| 亚洲自拍偷拍图区| 欧美亚洲国产一区在线观看网站| 中文字幕一区二区三区四区不卡| 国产不卡视频一区二区三区| 国产人伦精品一区二区| 国产精品一区二区在线播放| 精品盗摄一区二区三区| 美女任你摸久久| 欧美va亚洲va| 精品一区二区在线观看| 欧美成人video| 精品一区二区在线观看| 久久久久国产精品厨房| 国产69精品久久99不卡| 中文字幕 久热精品 视频在线| 成人av影院在线| 亚洲欧美一区二区三区极速播放|