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

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

?? stv199_i.c

?? 這是DVB tuner驅(qū)動(dòng)部分和其它相關(guān)的源碼和一些技術(shù)資料文檔.
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/*****************************************************************************File Name   : stv199_i.cDescription : STV0199A LINKIC Device implementation of the DEMOD API.Copyright (C) 1999 STMicroelectronicsRevision History    :    02/02/00    Added support for FEC mode, serial clock control,                serial data mode and TS output mode.Reference           :ST API Definition "TUNER Driver API" DVD-API-06*****************************************************************************/#define DEMOD_PROTOTYPE static          /* Local pre-include defs *//* Includes --------------------------------------------------------------- */#include <string.h>                     /* C libs */ #include <stdio.h>#include "stlite.h"                     /* Standard includes */#include "stddefs.h"#include "sttuner.h"                    /* STAPI Error codes, etc */#include "stcommon.h"#include "demod.h"                      /* DEMOD Device API */#include "tnr.h"                        /* TNR Device API */#include "stv199.h"                     /* Low-level device access */#include "sttbx.h"/* Private types/constants ------------------------------------------------ */#define	ANALOG_CARRIER_DETECT_SYMBOL_RATE   5000000#define	ANALOG_CARRIER_DETECT_AGC2_VALUE    25#define BANDWIDTH 36000L/* Sub range params -- see SubRangeSetting() for more details */typedef struct{    S16 SubRangeInit;    S16 SubRangeLimit;    U16 SubRangeSize;    S8 SubRangeIndex;} DEMOD_SubRangeParams_t;/* Derotator params */typedef struct{    S16 DerotatorStart;    S16 DerotatorValue;    S16 DerotatorFrequency;    U16 DerotatorLimit;    U8 DerotatorStep;} DEMOD_DerotatorParams_t;/* Timing loop parameters -- for tracking timing loop frequency */typedef struct{    U16 NumberSamples;    U16 TimingLimit;    S16 TimingLoopFrequency;    U16 TimingLoopStep;    U16 TimingLoopWait;    BOOL TimingLoopOk;} DEMOD_TimingLoopParams_t;/* QPSK params -- timer values and frequency lock index */typedef struct{    S16 FLIndex;    U32 QPSKFrequency;    U16 QPSKWaitValue;    U16 DataWaitValue;} DEMOD_QPSKParams_t;/* Scan params -- contains scan settings and all above params */typedef struct{    U32 InitialFrequency;    U32 ScannedFrequency;    U32 CurrentFrequency;    U32 MaxLNBOffset;    U32 TunerStep;    S32 IQSense;    DEMOD_SubRangeParams_t SubRangeParams;    DEMOD_DerotatorParams_t DerotatorParams;    DEMOD_TimingLoopParams_t TimingLoopParams;    DEMOD_QPSKParams_t QPSKParams;} DEMOD_ScanParams_t;/* DEMOD control block */typedef struct{    DEMOD_MapTable_t        *MapTable_p;    /* Maptable */    ST_Partition_t          *MemoryPartition;    TNR_Handle_t            TunerHandle;    /* TNR device access */    STV0199A_Device_t       STV0199ADevice; /* 199 device access */} DEMOD_ControlBlock_t;/* Private variables ------------------------------------------------------ */extern DEMOD_MapTable_t __STV0199MapTable;/* Private macros --------------------------------------------------------- *//* This macro is a convenient way of obtaining the underlying hardware * structure from the DEMOD API -- it saves us having to typecast * too much! */#define STV0199A_HANDLE(x)     ((STV0199A_Device_t *) \                               (&(((DEMOD_ControlBlock_t *)x)->STV0199ADevice)))#define TNR_HANDLE(x)          (((DEMOD_ControlBlock_t *)x)->TunerHandle)/* Private function prototypes -------------------------------------------- */static DEMOD_ErrorCode_t InitializeSearchTimers(DEMOD_ControlBlock_t *Demod_p,                                                DEMOD_ScanParams_t *ScanParams_p);static DEMOD_ErrorCode_t FastSearch(DEMOD_ControlBlock_t *Demod_p,                                    U32 Frequency,                                    U32 *NewFrequency_p,                                    BOOL *AGCLevelGood_p);static DEMOD_ErrorCode_t Scan(DEMOD_ControlBlock_t *Demod_p,                              U32 Frequency,                              DEMOD_ScanParams_t *ScanParams_p,                              BOOL *ScanOk_p);static DEMOD_ErrorCode_t SearchQPSK(DEMOD_ControlBlock_t *Demod_p,                                    DEMOD_ScanParams_t *ScanParams_p,                                    BOOL *QPSKOk_p);static DEMOD_ErrorCode_t SetTunerFrequency(DEMOD_ControlBlock_t *Demod_p,                                           U32 Frequency,                                           U32 *NewFrequency_p);static DEMOD_ErrorCode_t IsAGC1Good(DEMOD_ControlBlock_t *Demod_p,                                    BOOL *AGC1GoodLevel_p);static DEMOD_ErrorCode_t IsAGC2Good(DEMOD_ControlBlock_t *Demod_p,                                    U16 NumberSamples,                                    S16 *AGC2Value_p,                                    BOOL *AGC2Good_p);static DEMOD_ErrorCode_t CheckTimingLoop(DEMOD_ControlBlock_t *Demod_p,                                         DEMOD_TimingLoopParams_t *Params_p);static DEMOD_ErrorCode_t CentreTimingLoop(DEMOD_ControlBlock_t *Demod_p,                                          S16 TimingLoopFrequency);static DEMOD_ErrorCode_t CheckQPSK(DEMOD_ControlBlock_t *Demod_p,                                   U16 QPSKWaitValue,                                   BOOL *SignalFound);static DEMOD_ErrorCode_t NewRange(DEMOD_ControlBlock_t *Demod_p,                                  DEMOD_ScanParams_t *ScanParams_p,                                  BOOL *RangeOk_p);static DEMOD_ErrorCode_t SearchData(DEMOD_ControlBlock_t *Demod_p,                                    U32 Frequency,                                    U16 Delay,                                    BOOL *DataFound);static DEMOD_ErrorCode_t Optimization(DEMOD_ControlBlock_t *Demod_p,                                      U32 Frequency,                                      U16 Delay,                                      S32 IQSense,                                      U32 TunerStep,                                      BOOL *SignalFound,                                      U32 *NewFrequency_p);static DEMOD_ErrorCode_t NextQPSKLock(DEMOD_ControlBlock_t *Demod_p,                                      DEMOD_ScanParams_t *ScanParams_p,                                      BOOL *LockFound_p);static DEMOD_ErrorCode_t LargeTunerStep(DEMOD_ControlBlock_t *Demod_p,                                        U32 NewFrequency,                                        DEMOD_ScanParams_t *ScanParams_p);static DEMOD_ErrorCode_t VerifyTimingLoop(DEMOD_ControlBlock_t *Demod_p,                                          S16 TimingLoopFrequency,                                          U16 TimingLoopWait,                                          BOOL *TimingLoopOk_p);static void DEMOD_Delay(U32 n);#ifdef STTUNER_DEBUGstatic void DumpScanParams(DEMOD_ScanParams_t *ScanParams_p);#endif/* API routines ----------------------------------------------------------- *//*****************************************************************************Name: DEMOD_Init()Description:    Initializes the DEMOD device.Parameters:    InitParams_p,   pointer to init params to for guiding the initialization                    process for this device.Return Value:    DEMOD_NO_ERROR,             the operation completed without error.    STI2C_xxx,                  there was a problem accessing the device.    DEMOD_ERROR_BAD_PARAMETER,  one or more params were invalid.See Also:    Nothing.*****************************************************************************/static DEMOD_ErrorCode_t DEMOD_Init(DEMOD_InitParams_t *InitParams_p,                                    DEMOD_Handle_t *Handle_p,                                    DEMOD_Capability_t *Capability_p){    DEMOD_ErrorCode_t Error = DEMOD_NO_ERROR;    DEMOD_ControlBlock_t *Demod_p;    /* Allocate control block memory */    Demod_p = memory_allocate(InitParams_p->MemoryPartition,                              sizeof(DEMOD_ControlBlock_t));    /* Ensure allocation succeeded */    if (Demod_p == NULL)        return ST_ERROR_NO_MEMORY;    /* Store away internal handles */    Demod_p->TunerHandle = InitParams_p->TunerHandle;    Demod_p->MapTable_p = &__STV0199MapTable;    Demod_p->MemoryPartition = InitParams_p->MemoryPartition;    /* Set capabilties */    Capability_p->FECAvail = DEMOD_FEC_ALL;    Capability_p->ModulationAvail = DEMOD_MOD_ALL;    Capability_p->AGCControl = FALSE;    Capability_p->SymbolMin = 0;    /* !!TBD!! */    Capability_p->SymbolMax = ((U32)-1); /* !!TBD!! */    /* Hardware specific bindings */    STV0199A_HANDLE(Demod_p)->Handle_p = InitParams_p->DeviceAccess_p;    STV0199A_HANDLE(Demod_p)->ExternalClock = InitParams_p->ExternalClock;    /* Initialize the hardware registers */    Error = STV0199A_ResetRegisters(STV0199A_HANDLE(Demod_p));    /* Check DEMOD initialization options */    /* TS output mode */    switch (InitParams_p->TSOutputMode)    {        case DEMOD_TS_SERIAL:            STV0199A_SetProperty(STV0199A_HANDLE(Demod_p),                                 STV0199A_TS_OUTPUT_MODE,                                 1);            break;        default:        case DEMOD_TS_PARALLEL:        case DEMOD_TS_DEFAULT:            STV0199A_SetProperty(STV0199A_HANDLE(Demod_p),                                 STV0199A_TS_OUTPUT_MODE,                                 0);            break;    }    /* Set FEC mode */    switch (InitParams_p->FECMode)    {        case DEMOD_FEC_MODE_DIRECTV:            Error = DEMOD_ERROR_FEATURE_NOT_SUPPORTED;            return Error;        default:        case DEMOD_FEC_MODE_DEFAULT:        case DEMOD_FEC_MODE_DVB:            break;    }    /* Only set serial configuration if serial mode output */    if (InitParams_p->TSOutputMode == DEMOD_TS_SERIAL)    {        /* Set serial clock source */        switch(InitParams_p->SerialClockSource)        {            case DEMOD_SCLK_VCODIV6:                Error = DEMOD_ERROR_FEATURE_NOT_SUPPORTED;                return Error;            default:            case DEMOD_SCLK_DEFAULT:            case DEMOD_SCLK_MASTER:                break;        }        /* Set serial data mode */        if ((InitParams_p->SerialDataMode /* Rising edge */             & DEMOD_SDAT_VALID_RISING) != 0)            STV0199A_SetProperty(STV0199A_HANDLE(Demod_p),                                 STV0199A_OUTPUT_CLOCK_CFG,                                 1);        else            STV0199A_SetProperty(STV0199A_HANDLE(Demod_p),                                 STV0199A_OUTPUT_CLOCK_CFG,                                 0);        if ((InitParams_p->SerialDataMode /* Parity enable */             & DEMOD_SDAT_PARITY_ENABLE) != 0)            STV0199A_SetProperty(STV0199A_HANDLE(Demod_p),                                 STV0199A_OUTPUT_CLOCK_PLR,                                 1);        else            STV0199A_SetProperty(STV0199A_HANDLE(Demod_p),                                 STV0199A_OUTPUT_CLOCK_PLR,                                 0);    }    /* Set caller's handle */    *Handle_p = Demod_p;    /* Ensure device communications is working */    if (Error != ST_NO_ERROR)    {        /* Deallocate control block */        memory_deallocate(InitParams_p->MemoryPartition,                          Demod_p);    }    return Error;} /* DEMOD_Init() *//*****************************************************************************Name: DEMOD_Term()Description:    Performs any necessary operations that are required to cleanup after    the DEMOD device.Parameters:    Demod_p,        pointer to the DEMOD device.Return Value:    DEMOD_NO_ERROR, the operation completed without error.    Other error codes TBD.See Also:    Nothing.*****************************************************************************/static DEMOD_ErrorCode_t DEMOD_Term(DEMOD_Handle_t Handle){    memory_deallocate(((DEMOD_ControlBlock_t *)Handle)->MemoryPartition,                      Handle);    return ST_NO_ERROR;} /* DEMOD_Term() *//*****************************************************************************Name: DEMOD_IsAnalogCarrier()Description:    This routine checks for an analog carrier on the current frequency    by setting the symbol rate to 5M (never a digital signal).Parameters:    Demod_p,        pointer to the DEMOD device.    IsAnalog_p,     pointer to area to store result:                    TRUE - is analog                    FALSE - is not analogReturn Value:    DEMOD_NO_ERROR,     the operation completed without error.    STI2C_xxx,          there was a problem accessing the device.See Also:    Nothing.*****************************************************************************/static DEMOD_ErrorCode_t DEMOD_IsAnalogCarrier(DEMOD_Handle_t Handle,                                               BOOL *IsAnalog_p){    DEMOD_ErrorCode_t Error = DEMOD_NO_ERROR;    U8 i;    U16 Agc2 = 0;    /* Assume no analog carrier */    *IsAnalog_p = FALSE;    /* Set the symbol rate to analog carrier rate */    Error = STV0199A_SetSymbolRate(STV0199A_HANDLE(Handle),                                   ANALOG_CARRIER_DETECT_SYMBOL_RATE);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国毛片一区二区三区| 一本一道久久a久久精品| 久久综合久久综合亚洲| gogogo免费视频观看亚洲一| 婷婷成人激情在线网| 国产精品毛片高清在线完整版| 91精品国产欧美日韩| 91日韩一区二区三区| 国内精品久久久久影院色| 亚洲自拍与偷拍| 国产精品全国免费观看高清| 欧美不卡激情三级在线观看| 91国内精品野花午夜精品| 夫妻av一区二区| 国内欧美视频一区二区| 肉色丝袜一区二区| 亚洲综合一区二区精品导航| 中文字幕一区不卡| 国产视频一区二区在线| 日韩免费电影网站| 欧美丰满一区二区免费视频| 欧美性感一区二区三区| 99精品国产视频| 成人在线综合网站| 国产精品18久久久久久久久 | 欧美日韩国产综合一区二区| 成人夜色视频网站在线观看| 久草热8精品视频在线观看| 亚洲成av人影院在线观看网| 亚洲激情男女视频| 亚洲人吸女人奶水| 国产精品久久久久久久岛一牛影视| 久久久久国产一区二区三区四区| 3atv一区二区三区| 777久久久精品| 在线观看91av| 91精品国产免费| 日韩一区二区三区四区| 欧美一级午夜免费电影| 欧美一级片在线看| 欧美一区二区免费| 91精品国产综合久久久久久久 | 国产福利91精品| 国产美女娇喘av呻吟久久| 麻豆高清免费国产一区| 另类的小说在线视频另类成人小视频在线 | 亚洲一卡二卡三卡四卡五卡| 一区二区三区高清在线| 一区二区三区高清在线| 26uuu另类欧美亚洲曰本| 色综合久久久久久久久| 色婷婷综合久久久久中文 | 成人性生交大片免费| 国产精品影视在线| 国产 欧美在线| 不卡一区二区中文字幕| 色94色欧美sute亚洲线路二| 欧美性生活影院| 欧美一区二区人人喊爽| 亚洲精品一线二线三线| 中文字幕不卡的av| 亚洲一级电影视频| 91视视频在线观看入口直接观看www | 蜜桃精品视频在线观看| 国产一区二区三区日韩 | 亚洲男人的天堂在线观看| 中文字幕五月欧美| 亚洲自拍都市欧美小说| 婷婷综合五月天| 久久不见久久见免费视频1| 国产精品1024| 91国偷自产一区二区使用方法| 欧美精品777| 国产夜色精品一区二区av| 亚洲人精品一区| 久久精品免费看| heyzo一本久久综合| 欧美日韩大陆在线| 久久九九全国免费| 亚洲成在人线在线播放| 国产真实精品久久二三区| 97国产精品videossex| 国产精品九色蝌蚪自拍| 亚洲国产另类av| 国产麻豆精品在线观看| 欧美综合一区二区三区| 久久综合色8888| 亚洲二区视频在线| 国产精品12区| 亚洲一级二级三级| 午夜亚洲福利老司机| 国产精品一卡二卡| 欧美日韩免费电影| 国产精品久久久久影视| 首页综合国产亚洲丝袜| www.欧美日韩国产在线| 日韩一区二区电影网| 亚洲精品国产品国语在线app| 美女视频一区二区三区| 在线亚洲高清视频| 久久久久久久免费视频了| 亚洲一区av在线| 成人av资源在线观看| 日韩精品一区国产麻豆| 亚洲一区二区三区中文字幕| 国产成人免费视频| 欧美一区二区不卡视频| 亚洲精品国产精品乱码不99| 国产精品正在播放| 日韩欧美www| 日韩在线一二三区| 欧美在线一区二区三区| 国产精品麻豆一区二区| 国产一区二区三区在线观看免费| 欧美日韩国产精选| 一区二区在线观看视频| 99精品欧美一区二区三区小说 | 欧美国产日产图区| 麻豆精品视频在线观看视频| 欧美日韩视频在线观看一区二区三区 | 欧美综合色免费| 成人欧美一区二区三区视频网页| 久久99精品久久久久| 91精品国产一区二区三区香蕉| 亚洲综合在线免费观看| jiyouzz国产精品久久| 国产蜜臀97一区二区三区| 极品尤物av久久免费看| 日韩精品一区二区三区蜜臀| 蜜臀久久99精品久久久久久9| 911精品国产一区二区在线| 视频一区二区不卡| 91精品免费观看| 日韩国产在线一| 欧美老女人第四色| 日韩av中文字幕一区二区三区| 欧美日韩成人一区| 午夜精品福利视频网站| 欧美高清hd18日本| 日日摸夜夜添夜夜添精品视频| 欧美日韩国产高清一区二区| 视频一区视频二区中文| 91精品国产综合久久蜜臀| 免费在线观看一区二区三区| 欧美一区二区三区免费大片| 看电影不卡的网站| wwww国产精品欧美| 高清不卡一区二区| 中文字幕一区二区三区色视频| 91碰在线视频| 亚洲成人福利片| 欧美一区二区大片| 国产乱码精品一品二品| 国产精品久久三| 欧美性一级生活| 首页亚洲欧美制服丝腿| 久久综合色综合88| 99re这里只有精品首页| 亚洲一线二线三线视频| 在线观看91精品国产麻豆| 久久国产日韩欧美精品| 国产婷婷色一区二区三区四区| 不卡电影一区二区三区| 一区二区三区在线视频免费| 欧美肥妇毛茸茸| 国产一本一道久久香蕉| 综合久久久久综合| 欧美日韩中文一区| 国产在线精品一区二区夜色| 亚洲欧美自拍偷拍| 4438x成人网最大色成网站| 国产黄色精品网站| 洋洋成人永久网站入口| 日韩一区二区三| 99久久综合国产精品| 无码av免费一区二区三区试看| 欧美不卡一区二区三区四区| 北条麻妃一区二区三区| 午夜国产精品一区| 欧美激情一区二区三区蜜桃视频| 欧美专区在线观看一区| 国产在线一区观看| 亚洲夂夂婷婷色拍ww47| 欧美精品一区二区三区在线| 色婷婷综合中文久久一本| 韩国精品免费视频| 亚洲精品欧美激情| 久久蜜桃香蕉精品一区二区三区| 色综合久久88色综合天天免费| 精品制服美女久久| 樱花草国产18久久久久| 久久人人爽爽爽人久久久| 欧美伊人久久久久久久久影院 | 欧美日韩视频专区在线播放| 国产高清不卡二三区| 亚洲成人三级小说| **网站欧美大片在线观看| 精品免费国产二区三区| 欧美日韩大陆在线| 91麻豆成人久久精品二区三区|