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

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

?? driv0299.c

?? 這是DVB tuner驅動部分和其它相關的源碼和一些技術資料文檔.
?? C
?? 第 1 頁 / 共 3 頁
字號:
    int     i;    /* =======================================================================    -- Data capture time (in ms)    -- -------------------------    -- This time is due to the Viterbi synchronisation.    --    --    For each authorized inner code, the Viterbi search time is calculated,    --    and the results are cumulated in ViterbiSearch.    */    for(i=0;i<5;i++)    {        if (((Er >> i)& 0x01) == 0x01)        {            switch(i)            {                case 0:                    /*    inner code 1/2    */                    InnerCode = 2000;    /* 2.0 */                    break;                case 1:                    /*    inner code 2/3    */                    InnerCode = 1500;     /* 1.5 */                    break;                case 2:                    /*    inner code 3/4  */                    InnerCode = 1333;    /* 1.333 */                    break;                case 3:                    /*    inner code 5/6    */                    InnerCode = 1200;    /* 1.2 */                    break;                case 4:                    /*    inner code 7/8    */                    InnerCode = 1143;    /* 1.143 */                    break;            }            Tviterbi +=(int)((PhaseNumber[i]*averaging[Sn]*InnerCode)/SymbolRate);            if(HigherRate < InnerCode)                HigherRate = InnerCode;        }    }    /*      time out calculation (TimeOut)    --    ------------------------------    --    This value indicates the maximum duration of the synchro word research.    */    TimeOut   = (int)((HigherRate * 16384L * ((long)To + 1))/(2*SymbolRate));  /* cast To to long (eliminate compiler warning --SFS */    /*    Hysteresis duration (Hysteresis)    --    ------------------------------    */    THysteresis = (int)((HigherRate * 26112L * ((long)Hy +1))/(2*SymbolRate));    /*    26112= 16*204*8 bits *//* cast Hy to long (eliminate compiler warning --SFS */    /* a guard time of 1 mS is added */    return (1 + Tviterbi + TimeOut + THysteresis);}/*****************************************************--FUNCTION  ::    InitParams--ACTION    ::    Set Params fields that are never changed during search algorithm--PARAMS IN ::    NONE--PARAMS OUT::    NONE--RETURN    ::    NONE--***************************************************/void InitParams(STV0299_ControlBlock_t *Dev_p){    int        stdby,dirclk,k,m,p,    m1,betaagc1,    agc2coef,MasterClock;    /*    Read registers (in burst mode)    */    RegGetRegisters(Dev_p, R_RCR,2);        /*    Read RCR and MCR registers    */    RegGetOneRegister(Dev_p, R_AGC1C);    RegGetRegisters(Dev_p, R_AGC1R,2);        /*    Read AGC1R and AGC2O registers */    /*    Get fields values    */    stdby=FieldGetVal(Dev_p, STDBY);    dirclk=FieldGetVal(Dev_p, DIRCLK);    k=FieldGetVal(Dev_p, K);    m=FieldGetVal(Dev_p, M);    p=FieldGetVal(Dev_p, P);    m1=FieldGetVal(Dev_p, AGC1_REF);    betaagc1=FieldGetVal(Dev_p, BETA_AGC1);    agc2coef=FieldGetVal(Dev_p, AGC2COEF);    /*    Initial calculations    */    MasterClock = (int)CalcMasterClkFrequency(Dev_p, stdby,dirclk,k,m,p);  /* cast to match parameter type --SFS */    Dev_p->Params.Tagc1 = (int)(CalcAGC1TimeConstant(m1,MasterClock,betaagc1)/20L);  /* cast to match parameter type --SFS */    Dev_p->Params.Tagc2 = (int)(CalcAGC2TimeConstant(agc2coef,m1,MasterClock)/1000000L);  /* cast to match parameter type --SFS */    Dev_p->Params.MasterClock = MasterClock;    Dev_p->Params.Mclk = MasterClock/65536L;    Dev_p->Params.RollOff = RegGetRollOff(Dev_p);    /* Added defensive check against Mclk == 0 to avoid potential       divide by zero exceptions throughout the code.  In practice       Mclk should never equal zero - if it does, something       seriously bad has happened!  In the event that Mclk is       zero at this point we reset it to 1 to ensure       driver computations involving Mclk do not produce       exceptions.     */    if (Dev_p->Params.Mclk == 0)        Dev_p->Params.Mclk = 1; /* Serious error - reset to avoid exceptions */}/*****************************************************--FUNCTION  ::    InitParams--ACTION    ::    Set Params fields that are used by the search algorithm--PARAMS IN ::    Frequency    =>    Frequency used to start zig zag--                SymbolRate    =>    searched symbol rate--                SearchRange =>    Range of the search--                DerotStep    =>    Size of derotator's steps used in the carrier search (in per thousand of symbol frequency)--PARAMS OUT::    NONE--RETURN    ::    NONE--***************************************************/void InitSearch(STV0299_ControlBlock_t *Dev_p, int Frequency, int SymbolRate,                int SearchRange, int DerotStep){    TNR_Status_t TunerStatus;    U32 BandWidth;    /* Obtain current tuner status */    TNR_GetStatus(TNR_HANDLE(Dev_p), &TunerStatus);    /* Select closest bandwidth for tuner */    TNR_SetBandWidth(TNR_HANDLE(Dev_p),                     (U32)(CarrierWidth(SymbolRate, Dev_p->Params.RollOff)/1000 + 3000),                     &BandWidth);    /* cast to U32 type to match function argument & eliminate compiler warning --SFS */    Dev_p->Params.Frequency = Frequency;    Dev_p->Params.SymbolRate = SymbolRate;    Dev_p->Params.SearchRange = SearchRange;    Dev_p->Params.DerotPercent = DerotStep;    Dev_p->Params.TunerBW = (long) BandWidth*1000;  /* cast from U32 to long to eliminate compiler warning --SFS */    Dev_p->Params.TunerStep = (long)TunerStatus.TunerStep;    Dev_p->Params.TunerIF = (long)TunerStatus.IntermediateFrequency;    Dev_p->Result.SignalType = NOAGC1;    Dev_p->Result.Frequency = 0;    Dev_p->Result.SymbolRate = 0;}/*****************************************************--FUNCTION  ::    SearchTiming--ACTION    ::    Perform an Fs/2 zig zag to found timing--PARAMS IN ::    NONE--PARAMS OUT::    NONE--RETURN    ::    NOTIMING if no valid timing had been found, TIMINGOK otherwise--***************************************************/SIGNALTYPE SearchTiming(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams, SEARCHRESULT *pResult){    short int    DerotStep,    DerotFreq = 0,    LastDerotFreq = 0,    DerotLimit,    NextLoop = 2;    int     index = 0;    pParams->State = NOTIMING;    pParams->Direction = 1;    /* timing loop computation & symbol rate optimisation    */    DerotLimit = (short int)((pParams->SubRange/2L)/pParams->Mclk);  /* cast to eliminate compiler warning --SFS */    DerotStep = (short int)((pParams->SymbolRate/2L)/pParams->Mclk); /* cast to eliminate compiler warning --SFS */    do    {        if(CheckTiming(Dev_p, pParams)==NOTIMING)        {            index++;            LastDerotFreq = DerotFreq;            DerotFreq += index*pParams->Direction*DerotStep;    /*    Compute the next derotator position for the zig zag    */            if(ABS(DerotFreq) > DerotLimit)                NextLoop--;            if(NextLoop)            {                FieldSetVal(Dev_p, DEROTATORFREQUENCYMSB,MSB(DerotFreq));                FieldSetVal(Dev_p, DEROTATORFREQUENCYLSB,LSB(DerotFreq));                RegSetRegisters(Dev_p, R_CFRM,2);                             /*    Set the derotator frequency    */            }        }        else        {            pResult->SymbolRate = pParams->SymbolRate;        }        pParams->Direction = -pParams->Direction;            /*    Change the zigzag direction    */    }    while((pParams->State!=TIMINGOK) && NextLoop);    if(pParams->State == TIMINGOK)    {        RegGetRegisters(Dev_p, R_CFRM,2);                                 /*    Get the derotator frequency    */        pParams->DerotFreq = (short int) MAKEWORD(            FieldGetVal(Dev_p, DEROTATORFREQUENCYMSB),            FieldGetVal(Dev_p, DEROTATORFREQUENCYLSB)            );    }    else    {        pParams->DerotFreq = LastDerotFreq;    }    return pParams->State;}/*****************************************************--FUNCTION  ::    SearchCarrier--ACTION    ::    Search a QPSK carrier with the derotator--PARAMS IN ::--PARAMS OUT::    NONE--RETURN    ::    NOCARRIER if no carrier had been found, CARRIEROK otherwise--***************************************************/SIGNALTYPE SearchCarrier(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams, SEARCHRESULT *pResult){    short int    DerotFreq = 0,    LastDerotFreq = 0,    DerotLimit,    NextLoop = 2;    int     index = 0;    pParams->State = NOCARRIER;    pParams->Direction = 1;    DerotLimit = (short int)((pParams->SubRange/2L)/pParams->Mclk); /* cast to eliminate compiler warning --SFS */    DerotFreq = pParams->DerotFreq;    RegSetField(Dev_p, CFD_ALGO, 1);    do    {        if(CheckCarrier(Dev_p, pParams)==NOCARRIER)        {            index++;            LastDerotFreq = DerotFreq;            DerotFreq += index*pParams->Direction*pParams->DerotStep;    /*    Compute the next derotator position for the zig zag    */            if(ABS(DerotFreq) > DerotLimit)                NextLoop--;            if(NextLoop)            {                RegSetField(Dev_p, CFD_ALGO, 1);                FieldSetVal(Dev_p, DEROTATORFREQUENCYMSB,MSB(DerotFreq));                FieldSetVal(Dev_p, DEROTATORFREQUENCYLSB,LSB(DerotFreq));                RegSetRegisters(Dev_p, R_CFRM,2);                             /*    Set the derotator frequency    */            }        }        else        {            pResult->SymbolRate = pParams->SymbolRate;        }        pParams->Direction = -pParams->Direction;            /*    Change the zigzag direction    */    }    while(    (pParams->State!=CARRIEROK) && NextLoop);    if(pParams->State == CARRIEROK)    {        RegGetRegisters(Dev_p, R_CFRM,2);                                 /*    Get the derotator frequency    */        pParams->DerotFreq = (short int) MAKEWORD(            FieldGetVal(Dev_p, DEROTATORFREQUENCYMSB),            FieldGetVal(Dev_p, DEROTATORFREQUENCYLSB)            );    }    else    {        pParams->DerotFreq = LastDerotFreq;    }    return pParams->State;}/*****************************************************--FUNCTION    ::    SearchFalseLock--ACTION    ::    Search a QPSK carrier with the derotator, if there is a false lock--PARAMS IN    ::--PARAMS OUT::    NONE--RETURN    ::    NOCARRIER if no carrier had been found, CARRIEROK otherwise--***************************************************/SIGNALTYPE SearchFalseLock(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams, SEARCHRESULT *pResult){    short int    DerotFreq,    DerotStep,    DerotLimit,    DerotOffset,    NextLoop = 2;    int     index = 1;    long    CurrentFreq, NewFrequency;    pParams->State = NOCARRIER;    DerotStep = (short int)((pParams->SymbolRate/4L)/pParams->Mclk); /* cast to eliminate compiler warning --SFS */    DerotLimit = (short int)((pParams->SubRange/2L)/pParams->Mclk);  /* cast to eliminate compiler warning --SFS */    DerotFreq = pParams->DerotFreq;    do    {        DerotFreq += index*pParams->Direction*DerotStep;        /*    Compute the next derotator position for the zig zag    */        CurrentFreq = pParams->Frequency + (DerotFreq*pParams->Mclk)/1000;        if(ABS(DerotFreq) > DerotLimit)            NextLoop--;        if(NextLoop)        {            /* if the False Lock is outside the derotator capture range    */            TNR_SetFrequency(TNR_HANDLE(Dev_p), (U32)CurrentFreq, (U32 *)&NewFrequency); /*(U32)CurrentFreq cast to eliminate compiler warning --SFS */            DerotOffset = (short int)(((NewFrequency - CurrentFreq) * pParams->Mclk )/1000);        /*    Move the tuner    */ /* cast to eliminate compiler warning --SFS */            WaitTuner(Dev_p, 100);                                    /*    Is tuner Locked    ?    */            RegSetField(Dev_p, CFD_ALGO, 1);            FieldSetVal(Dev_p, DEROTATORFREQUENCYMSB,MSB(DerotOffset));            FieldSetVal(Dev_p, DEROTATORFREQUENCYLSB,LSB(DerotOffset));            RegSetRegisters(Dev_p, R_CFRM,2);                         /*    Reset the derotator frequency    */            CheckCarrier(Dev_p, pParams);            if(pParams->State == CARRIEROK)                CheckData(Dev_p, pParams);            index++;        }        pParams->Direction = -pParams->Direction;            /*    Change the zigzag direction    */    }    while((pParams->State != DATAOK) && NextLoop);    if(pParams->State == DATAOK)    {        RegGetRegisters(Dev_p, R_CFRM,2);                                 /*    Get the derotator frequency    */        pParams->DerotFreq = (short int) MAKEWORD(            FieldGetVal(Dev_p, DEROTATORFREQUENCYMSB),            FieldGetVal(Dev_p, DEROTATORFREQUENCYLSB)            );        pParams->Frequency = CurrentFreq;    }    return pParams->State;}/****************************************************--FUNCTION  ::    SearchData--ACTION    ::    Search for data--PARAMS IN ::    pParams->Tdata    =>    Time to wait for data--PARAMS OUT::    pParams->State    =>    Result of the search--RETURN    ::    NODATA if data not founded, DATAOK otherwise--**************************************************/SIGNALTYPE SearchData(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams, SEARCHRESULT *pResult){    if(CheckData(Dev_p, pParams)==NODATA)        /*    Check for data    */    {        IQInvertion(Dev_p);                    /*    Invert I and Q    */        if(CheckData(Dev_p, pParams) == NODATA)/*    Check for data    */        {            IQInvertion(Dev_p);                /*    Invert I and Q    */            SearchFalseLock(Dev_p, pParams, pResult);    /*    we have found a false lock    */        }    }    return pParams->State;}/****************************************************--FUNCTION    ::    CheckRange--ACTION    ::    Check if the founded frequency is in the correct range--PARAMS IN    ::    pParams->BaseFreq =>--PARAMS OUT::    pParams->State    =>    Result of the check--RETURN    ::    RANGEOK if check success, OUTOFRANGE otherwise--***************************************************/SIGNALTYPE CheckRange(STV0299_ControlBlock_t *Dev_p, SEARCHPARAMS *pParams, SEARCHRESULT *pResult){	int	RangeOffset,		TransponderFrequency;    RangeOffset = (int)(pParams->SearchRange / 2000);  /* cast to eliminate compiler warning --SFS */    TransponderFrequency = (int)(pParams->Frequency +

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产综合在线| 久久中文娱乐网| 亚洲乱码日产精品bd| 国产成人自拍在线| 日本一区二区三区四区在线视频| 久久精品国产久精国产爱| 欧美成人r级一区二区三区| 久久99精品久久只有精品| 久久这里只有精品6| 国产麻豆成人精品| 国产精品三级在线观看| 91成人在线观看喷潮| 天天操天天干天天综合网| 欧美一区二区不卡视频| 国产精品自在欧美一区| 国产精品久久久久久妇女6080| 99久久99久久精品免费看蜜桃 | 精品国产精品一区二区夜夜嗨| 免费在线成人网| 91免费版pro下载短视频| 久久久91精品国产一区二区精品| 日韩精品国产欧美| 粉嫩高潮美女一区二区三区 | 午夜久久久影院| 精品久久久久av影院| 成人开心网精品视频| 丝袜a∨在线一区二区三区不卡| 日韩精品自拍偷拍| 99riav久久精品riav| 亚州成人在线电影| 欧美激情在线一区二区三区| 欧美色网站导航| 国产在线精品国自产拍免费| 麻豆国产欧美一区二区三区| 国产日本一区二区| 欧美精品在线视频| 成人sese在线| 奇米影视7777精品一区二区| 国产精品污网站| 日韩一区二区在线免费观看| av一二三不卡影片| 久久国产剧场电影| 一区二区三区日韩在线观看| 精品理论电影在线观看 | 久久久久久免费| 欧美年轻男男videosbes| 粉嫩在线一区二区三区视频| 日韩国产在线一| 亚洲欧洲韩国日本视频| 欧美成人福利视频| 欧美精品 国产精品| www.欧美日韩国产在线| 国产永久精品大片wwwapp | 国产精品毛片久久久久久久| 欧美一区二区三区免费在线看| www.成人网.com| 国产综合成人久久大片91| 亚洲午夜私人影院| 亚洲人成伊人成综合网小说| 久久蜜臀精品av| 精品国产凹凸成av人网站| 91天堂素人约啪| 国产精品系列在线播放| 国内精品免费**视频| 蜜桃一区二区三区在线| 三级久久三级久久久| 亚洲午夜羞羞片| 亚洲一区在线观看免费| 亚洲私人影院在线观看| 国产精品丝袜在线| 国产精品99久久久久久久vr| 极品少妇一区二区| 在线观看亚洲精品视频| 色88888久久久久久影院野外 | 成人a级免费电影| 高清不卡在线观看av| 成人黄动漫网站免费app| 国产成人在线视频网址| 国产精品自在欧美一区| 国产成人久久精品77777最新版本| 美女视频黄免费的久久| 久久国产精品区| 黄色日韩网站视频| 国产成人精品1024| 国产乱人伦偷精品视频不卡| 国产成人亚洲综合a∨婷婷图片| 狠狠色丁香婷婷综合久久片| 国产精品系列在线播放| 99久久久无码国产精品| 色综合咪咪久久| 欧美午夜精品一区| 91精品国产乱码久久蜜臀| 日韩视频一区在线观看| 2024国产精品视频| 中文字幕精品—区二区四季| 亚洲欧美怡红院| 亚洲国产精品一区二区久久 | 国产一区二区按摩在线观看| 国产一区二区三区| 粗大黑人巨茎大战欧美成人| 91浏览器打开| 欧美精品日韩综合在线| 欧美本精品男人aⅴ天堂| 国产亚洲欧美中文| 亚洲色图欧洲色图婷婷| 日韩不卡在线观看日韩不卡视频| 九九国产精品视频| 成人av资源下载| 欧美精品精品一区| 国产亚洲欧美日韩日本| 一区二区三区在线看| 日本麻豆一区二区三区视频| 国产精品 欧美精品| 在线观看亚洲a| 精品福利视频一区二区三区| 亚洲欧洲在线观看av| 午夜精品国产更新| 国产成人精品亚洲777人妖| 一本色道a无线码一区v| 欧美xxxxx牲另类人与| 亚洲三级在线免费| 久久精品国产第一区二区三区| 成人精品亚洲人成在线| 欧美精品丝袜中出| 最近日韩中文字幕| 精品系列免费在线观看| 97久久精品人人做人人爽50路| 欧美日韩国产乱码电影| 国产女人水真多18毛片18精品视频 | 午夜日韩在线观看| 国产69精品久久777的优势| 欧美三级蜜桃2在线观看| 国产欧美日韩精品在线| 日日欢夜夜爽一区| 菠萝蜜视频在线观看一区| 91精品国产色综合久久| 18涩涩午夜精品.www| 韩国精品一区二区| 91精品国产综合久久精品性色| 国产精品久久久久久久久久免费看 | 亚洲一区二区3| 国产成人av影院| 日韩你懂的电影在线观看| 夜夜爽夜夜爽精品视频| 成人激情午夜影院| 久久久久久久久久电影| 看电视剧不卡顿的网站| 欧美日韩精品久久久| 亚洲欧美欧美一区二区三区| 国产宾馆实践打屁股91| 精品日韩一区二区三区免费视频| 亚洲成av人片在线| 91美女片黄在线| 国产精品国产三级国产| 国产精品资源在线观看| 欧美mv和日韩mv的网站| 日本伊人午夜精品| 欧美视频完全免费看| 一区二区三区91| 色欧美片视频在线观看| 亚洲丝袜自拍清纯另类| 豆国产96在线|亚洲| 国产欧美精品一区二区三区四区 | 欧美日韩免费在线视频| 一区二区三区高清不卡| 一本久道中文字幕精品亚洲嫩| 最新高清无码专区| 色域天天综合网| 亚洲精品成人精品456| 色婷婷激情综合| 亚洲视频1区2区| 日本久久一区二区三区| 亚洲一区二区视频| 欧美午夜免费电影| 午夜视频久久久久久| 欧美主播一区二区三区| 天天综合网 天天综合色| 欧美一级高清大全免费观看| 日本不卡不码高清免费观看| 日韩一区二区三区电影 | 国产夫妻精品视频| 国产免费久久精品| 成人性视频免费网站| 亚洲日韩欧美一区二区在线| 色老综合老女人久久久| 亚洲成人av在线电影| 日韩三级中文字幕| 国产一区二区免费在线| 国产精品免费视频网站| 日本道免费精品一区二区三区| 一区二区成人在线视频 | 国产另类ts人妖一区二区| 国产欧美日产一区| 日本韩国欧美一区二区三区| 亚洲成人午夜影院| 精品国产乱码久久久久久牛牛 | 亚洲黄色性网站| 制服丝袜日韩国产| 国产精品一区二区无线| 亚洲精品视频在线看|