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

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

?? saa7105.c

?? 使用DM642 來進(jìn)行scaling 有說明檔
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 *  Copyright 2004 by Texas Instruments Incorporated.
 *  All rights reserved. Property of Texas Instruments Incorporated.
 *  Restricted rights to use, duplicate or disclose this code are
 *  granted through contract.
 *  
 */
/* August 2004 */
/********************************************************************************/
/* saa7105edc.c file */
/********************************************************************************/
#include <std.h>        
#include <csl_stdinc.h>
#include <csl_i2c.h>
#include <edc.h>
#include <saa7105.h>

#include "_iic.h"
#include "_saa7105.h"   
                                                
/* local functions declaration */
static void clearHDSyncEngine(void);
static void configSAA7105(SAA7105_Mode videoMode, Bool slaveModeEnable, 
    SAA7105_AnalogFormat outMode, SAA7105_InputFormat inFormat, Bool enableBT656Sync);
static void enableColorBars(Bool enable);
static void enableSlaveMode(Bool enable);
static void initSAA7105Def(void);
static void loadCursor(SAA7105_Cursor* cursorTable);
static void loadHDSyncEngine(Uns mode);
static void loadLUT(SAA7105_LookUpTable* lutTable);
static void powerdownSAA7105(Bool powerDownEnable);
static void resetSAA7105(void);
static void setOutputMode(SAA7105_AnalogFormat outMode);
static void setSAA7105SyncMode(SAA7105_Mode displayType,Bool enableBT656Sync); 
static void setVideoDisplay(SAA7105_Mode displayType, 
    SAA7105_AnalogFormat outMode, SAA7105_InputFormat inFormat, Bool enableBT656Sync);
static void startHDSyncEngine(SAA7105_Mode displayType);

static Int SAA7105_close(EDC_Handle handle);
static Int SAA7105_ctrl(EDC_Handle handle, SAA7105_Cmd cmd, Arg param);
static EDC_Handle SAA7105_open(String devName, Arg optArg);


EDC_Fxns SAA7105_Fxns = {
    SAA7105_open,
    SAA7105_close,
    SAA7105_ctrl
};

/* local variables and arrays */
static I2C_Handle hI2C = INV;
static const Int outputModeTbl[3][5] = {
    {1, 1, 0, 0, 1},
    {0, 0, 0, 0, 0},
    {0, 1, 1, 1, 0}
};

static const Int modeTbl[8][8] = {
 /* NTSC */{248, 14, 1715, 720, 242, 0, 0, 0x20},
 /* PAL */{232, 19, 1727, 720, 290, 0, 0, 0x20},
 /*VGA */{64, 33, 799, 640, 480, 0xc3, 0xd4, 0x1d},
 /*SVGA */{64, 23, 1055, 800, 600, 0x4b, 0x68, 0x2f},
 /* XGA */{64, 29, 1343, 1024, 768, 0x7b, 0x09, 0x4d},  
 /*HD480P */{64, 30, 857, 720, 480, 0, 0, 0x20},
 /*HD720P */{64, 20, 1643, 1280, 720, 0, 0, 0x58},
 /*HD1080I*/{64, 10, 2193, 1920, 540, 0, 0, 0x58}
};                                              



/*
 * ======== clearHDSyncEngine ========
 */
static void clearHDSyncEngine(void)
{
    Uint8 *charPtr;


    _SAA7105_hdSyncGen0.lcAddress = 0;
    charPtr = (Uint8 *)&_SAA7105_hdSyncGen0.lcAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD0,charPtr,31);
    _SAA7105_hdSyncGen0.ltAddress = 0;
    charPtr = (Uint8 *)&_SAA7105_hdSyncGen0.ltAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD1,charPtr,61);
    _SAA7105_hdSyncGen0.lpAddress = 0;
    charPtr = (Uint8 *)&_SAA7105_hdSyncGen0.lpAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD2,charPtr,57);
    _SAA7105_hdSyncGen0.svAddress = 0;
    charPtr = (Uint8 *)&_SAA7105_hdSyncGen0.svAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD3,charPtr,17);
    return;
}

/*
 * ======== configSAA7105 ========
 */
static void configSAA7105(SAA7105_Mode videoMode, Bool slaveModeEnable, 
               SAA7105_AnalogFormat outMode, SAA7105_InputFormat inFormat, Bool enableBT656Sync)
{


/***************************************************************/
/* Enable master/slave mode                                    */
/***************************************************************/
    *(volatile Uint8 *)(0x90080010) = 0x1; //reset OSD     
    initSAA7105Def();
    setVideoDisplay(videoMode, outMode, inFormat, enableBT656Sync);
    enableSlaveMode(slaveModeEnable);
    loadCursor(NULL);
    enableColorBars(FALSE);

}



/*
 * ======== enableColorBars ========
 */
static void enableColorBars(Bool enable)
{
    _SAA7105_Regs *regPtr;
    Uint8 *charPtr;

    
    regPtr = &_SAA7105_settingsDef;
    regPtr->colorBarsEnable = enable;
    charPtr = (Uint8 *)&_SAA7105_settingsDef;
    _IIC_write(hI2C, _SAA7105_IICADDR,0x3A,&charPtr[0x3A],1);
    return;
}

/*
 * ======== enableSlaveMode ========
 */
static void enableSlaveMode(Bool enable)
{
    _SAA7105_Regs *regPtr;
    Uint8 *charPtr;

    
    regPtr = &_SAA7105_settingsDef;
    if(!enable){
        regPtr->masterSlaveMode = FALSE;
        regPtr->vSyncOutput = TRUE;
        regPtr->hSyncOutput = TRUE;     
        regPtr->fieldOutput = TRUE;     
        regPtr->bypassInputFIFO = FALSE;        
    }else{
        regPtr->masterSlaveMode = TRUE;
        regPtr->vSyncOutput = FALSE;
        regPtr->hSyncOutput = FALSE;        
        regPtr->fieldOutput = FALSE;        
        regPtr->bypassInputFIFO = TRUE;
    }
    charPtr = (Uint8 *)&_SAA7105_settingsDef;
    _IIC_write(hI2C, _SAA7105_IICADDR,0x96,&charPtr[0x96],2);
    _IIC_write(hI2C, _SAA7105_IICADDR,0x84,&charPtr[0x84],1);
    return;
}

/*
 * ======== initSAA7105Def ========
 * initialize the SAA7105 in default setup 
 */
static void initSAA7105Def(void)
{
    Uint8 *charPtr,subAddress;

    
/***************************************************************/
/* Load registers from ROM to RAM */
/***************************************************************/
    charPtr = (Uint8 *)&_SAA7105_settingsDef;
    subAddress = 0xD0;
    _IIC_write(hI2C, _SAA7105_IICADDR,subAddress,&charPtr[subAddress],13);
    subAddress = 0xF0;
    _IIC_write(hI2C, _SAA7105_IICADDR,subAddress,&charPtr[subAddress],14);
    return;
}

/*
 * ======== loadCursor ========
 * load Hardware cursor
 */
static void loadCursor(SAA7105_Cursor* cursorTable)
{
    Uns i;


/***************************************************************/
/* Load Hardware Cursor Bit Map with transparency */
/***************************************************************/
    if(cursorTable == NULL){
        cursorTable = &_SAA7105_cursorData;
        cursorTable->address = 0;
        for(i = 0; i < 256; i ++){
            cursorTable->cursorBlock[i] = 0xAA;
        }
    }
    _IIC_write(hI2C, _SAA7105_IICADDR,0xFE, (void *)cursorTable,256+1);
    return;
}

static void loadLUT(SAA7105_LookUpTable* lutTable)
{
    Uns i;


/***************************************************************/
/* Load Hardware Cursor Bit Map with transparency */
/***************************************************************/
    if(lutTable == NULL){
        lutTable = &_SAA7105_lookUpTable;
        lutTable->address = 0;
        for(i = 0; i < 256; i ++){
            lutTable->tables[i][0] = i;
            lutTable->tables[i][1] = i;
            lutTable->tables[i][2] = i;
        }
    }
    _IIC_write(hI2C, _SAA7105_IICADDR,0xFF, (void *)lutTable,256 * 3 + 1);
    return;
}


/*
 * ======== loadHDSyncEngine ========
 */
static void loadHDSyncEngine(Uns mode)
{
    _SAA7105_HDSyncGen *ptrHDSyncGen;
    Uint8 *charPtr;

    
    switch(mode)
    {
        case SAA7105_MODE_HD480P60F:
            ptrHDSyncGen = &_SAA7105_hdSyncGen480P;
            break;
        case SAA7105_MODE_HD720P60F:
            ptrHDSyncGen = &_SAA7105_hdSyncGen720P;
            break;
        case SAA7105_MODE_HD1080I30F:
            ptrHDSyncGen = &_SAA7105_hdSyncGen1080I;
            break;
        case SAA7105_MODE_VGA:
            ptrHDSyncGen = &_SAA7105_hdSyncGenVGA;
            break;
        case SAA7105_MODE_SVGA:
            ptrHDSyncGen = &_SAA7105_hdSyncGenSVGA;
            break;
        case SAA7105_MODE_XGA:
            ptrHDSyncGen = &_SAA7105_hdSyncGenXGA;
            break;
            
        default:
            break;
    }
    ptrHDSyncGen->lcAddress = 0;
    charPtr = (Uint8 *)&ptrHDSyncGen->lcAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD0,charPtr,31);
    ptrHDSyncGen->lpAddress = 0;
    charPtr = (Uint8 *)&ptrHDSyncGen->lpAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD2,charPtr,57);
    ptrHDSyncGen->ltAddress = 0;
    charPtr = (Uint8 *)&ptrHDSyncGen->ltAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD1,charPtr,61);
    ptrHDSyncGen->svAddress = 0;
    charPtr = (Uint8 *)&ptrHDSyncGen->svAddress + 3;
    _IIC_write(hI2C, _SAA7105_IICADDR,0xD3,charPtr,17);
}


/*
 * ======== powerdownSAA7105 ========
 */

static void powerdownSAA7105(Bool powerDownEnable)
{
    Uint8 *charPtr = (Uint8 *)&_SAA7105_settingsDef;


    /*Put _SAA7105 in power down mode */
    _SAA7105_settingsDef.downA = powerDownEnable;
    _SAA7105_settingsDef.downD = powerDownEnable;
    _IIC_write(hI2C, _SAA7105_IICADDR,0x61,&charPtr[0x61],1);
}


/*
 * ======== resetSAA7105 ========
 */
static void resetSAA7105(void)
{
/***************************************************************/
/* power-up SAA7105                                            */
/***************************************************************/
    powerdownSAA7105(FALSE);
    return;
}

/*
 * ======== setOutputMode ========
 */
static void setOutputMode(SAA7105_AnalogFormat outMode)
{
    _SAA7105_Regs *regPtr;
    Uint8 *charPtr;

    
    regPtr = &_SAA7105_settingsDef;
    regPtr->vbsEn = outputModeTbl[outMode][0];
    regPtr->cvbsEn0 = outputModeTbl[outMode][1];
    regPtr->cvbsEn1 = outputModeTbl[outMode][2];
    regPtr->cvbsEn2 = outputModeTbl[outMode][3];
    regPtr->cEn = outputModeTbl[outMode][4];    
    charPtr = (Uint8 *)&_SAA7105_settingsDef;
    _IIC_write(hI2C, _SAA7105_IICADDR,0x2D,&charPtr[0x2D],1);
    return;
}


/*
 * ======== setSAA7105SyncMode ========
 */
static void setSAA7105SyncMode(SAA7105_Mode displayType,Bool enableBT656Sync)
{
    Uint8 *charPtr = (Uint8 *)&_SAA7105_settingsDef;


    if(enableBT656Sync) {
        _SAA7105_settingsDef.syncVia656 = 1;
        if(displayType == SAA7105_MODE_PAL720) {
            //_SAA7105_settingsDef.hTriggerMSBs = 0; 
            //_SAA7105_settingsDef.hTrigger = 235;        
        }   
        else {        
//            _SAA7105_settingsDef.hTriggerMSBs = 0; 
//            _SAA7105_settingsDef.hTrigger = 235;  
        }
        _SAA7105_settingsDef.xOfs = 0;
        _SAA7105_settingsDef.xOfsMsb = 0;
    }else {
        _SAA7105_settingsDef.syncVia656 = 0;
    }    
    _IIC_write(hI2C, _SAA7105_IICADDR,0x3A,&charPtr[0x3A],1);       
    _IIC_write(hI2C, _SAA7105_IICADDR,0x99,&charPtr[0x99],1);       
    _IIC_write(hI2C, _SAA7105_IICADDR,0x90,&charPtr[0x90],1);       
    _IIC_write(hI2C, _SAA7105_IICADDR,0x94,&charPtr[0x94],1);       
    _IIC_write(hI2C, _SAA7105_IICADDR,0x6C,&charPtr[0x6C],1);       
    _IIC_write(hI2C, _SAA7105_IICADDR,0x6D,&charPtr[0x6D],1);       

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久蜜臀| 亚洲一二三区不卡| 亚洲裸体xxx| 久久99国产精品尤物| 欧美日韩国产系列| 亚洲女爱视频在线| 国产成人鲁色资源国产91色综| 在线观看免费成人| 中文字幕日本乱码精品影院| 精品亚洲免费视频| 91精品国产入口| 夜夜精品视频一区二区 | 最近日韩中文字幕| 国产精品一区二区果冻传媒| 制服丝袜在线91| 亚洲一区在线视频观看| 色婷婷久久99综合精品jk白丝| 国产拍揄自揄精品视频麻豆| 久久99精品国产麻豆婷婷| 欧美一区二区视频在线观看2022| 一区二区三区日韩欧美精品| 99在线热播精品免费| 中文天堂在线一区| 岛国一区二区在线观看| 精品乱码亚洲一区二区不卡| 老司机午夜精品| 欧美电影免费观看高清完整版在线| 亚洲香肠在线观看| 欧美高清视频www夜色资源网| 亚洲综合色视频| 欧美亚洲一区二区在线| 亚洲综合一二区| 欧美日韩高清影院| 丝袜美腿亚洲色图| 欧美一级欧美三级在线观看| 日韩av午夜在线观看| 欧美一级高清片| 久88久久88久久久| 国产日韩一级二级三级| 国产不卡在线一区| 国产精品久久福利| 欧美在线视频不卡| 日韩成人伦理电影在线观看| 日韩欧美一区在线观看| 国产乱淫av一区二区三区 | 亚洲日本在线看| 在线观看一区日韩| 麻豆成人av在线| 久久久久九九视频| 99精品黄色片免费大全| 亚洲午夜激情网站| 精品少妇一区二区三区视频免付费 | 欧美影院一区二区| 天堂一区二区在线免费观看| 精品国产伦一区二区三区免费| 福利视频网站一区二区三区| 日韩伦理电影网| 3d动漫精品啪啪一区二区竹菊| 寂寞少妇一区二区三区| 国产精品久久影院| 欧美日韩国产精品自在自线| 国产九色精品成人porny | 看电视剧不卡顿的网站| 国产欧美一区二区三区在线老狼| 色综合网色综合| 蜜桃久久久久久| 综合av第一页| 日韩一级二级三级| 99精品桃花视频在线观看| 日韩成人免费电影| 亚洲色图一区二区| 精品欧美一区二区三区精品久久| www.视频一区| 蜜臀av性久久久久蜜臀aⅴ| 国产欧美日韩精品a在线观看| 在线亚洲免费视频| 国产成人精品影院| 欧美96一区二区免费视频| 国产精品女人毛片| 欧美成人一区二区三区在线观看| 99久久亚洲一区二区三区青草| 日本在线不卡一区| 一区二区三区四区不卡视频 | 午夜精品一区在线观看| 国产精品成人网| 欧美va在线播放| 欧美三级日韩三级| 91玉足脚交白嫩脚丫在线播放| 麻豆精品精品国产自在97香蕉| 一区二区三区视频在线看| 中文字幕高清一区| 久久香蕉国产线看观看99| 欧美精品tushy高清| 欧美视频在线观看一区二区| 不卡在线视频中文字幕| 激情综合网天天干| 肉肉av福利一精品导航| 一区二区视频免费在线观看| 国产精品不卡一区二区三区| 精品嫩草影院久久| 欧美性淫爽ww久久久久无| 色偷偷88欧美精品久久久| 不卡av在线网| 不卡视频一二三四| 国产不卡视频一区二区三区| 国产福利一区二区三区视频| 六月婷婷色综合| 美女网站色91| 久久国产综合精品| 精品亚洲国产成人av制服丝袜 | 亚洲精品一区二区三区影院| 91精品在线免费观看| 欧美日韩日日夜夜| 欧美日韩精品三区| 制服丝袜亚洲播放| 91精品国产综合久久久久| 91精品国产免费久久综合| 欧美日本一区二区| 69堂成人精品免费视频| 91精品国产免费久久综合| 日韩欧美亚洲另类制服综合在线| 91精品国产综合久久精品| 欧美一区二区三区免费大片| 日韩三级视频在线看| 日韩免费一区二区| 国产亚洲福利社区一区| 欧美国产日本视频| 樱桃国产成人精品视频| 亚洲成人久久影院| 久久国产精品色婷婷| 高清在线不卡av| 97成人超碰视| 欧美日韩电影一区| 精品国精品国产尤物美女| 国产精品久久久久影院老司| 一区二区三区在线影院| 美女视频一区二区三区| 福利视频网站一区二区三区| 91久久久免费一区二区| 欧美成人video| 国产精品久久久久一区二区三区| 樱桃国产成人精品视频| 久久爱www久久做| av一二三不卡影片| 777午夜精品视频在线播放| 久久免费精品国产久精品久久久久 | 久久综合久久综合亚洲| 国产精品久久看| 三级一区在线视频先锋| 国产一区在线不卡| 在线观看国产91| 久久久高清一区二区三区| 亚洲图片一区二区| 国产精品996| 91精品国产综合久久精品图片| 国产免费成人在线视频| 婷婷开心激情综合| 99久久婷婷国产| 久久香蕉国产线看观看99| 亚洲午夜在线视频| 成人精品国产福利| 日韩一区二区电影| 亚洲综合色婷婷| 不卡的av网站| 久久精品无码一区二区三区| 一区二区欧美在线观看| 国产成人亚洲综合色影视| 欧美日韩国产一级| 亚洲激情综合网| 岛国一区二区在线观看| 日韩欧美国产综合一区| 亚洲制服丝袜一区| 成人app网站| 久久久久久久av麻豆果冻| 亚洲超碰精品一区二区| 91在线视频免费91| 国产午夜精品福利| 精品一区二区三区在线视频| 欧美日韩午夜在线| 亚洲最大成人网4388xx| 色综合天天综合在线视频| 国产精品色一区二区三区| 国产综合久久久久影院| 日韩精品一区二区三区视频在线观看| 亚洲一区二区3| 色综合久久天天综合网| 日韩美女视频一区二区| 成人免费高清视频在线观看| 久久久久久亚洲综合| 久久爱www久久做| 日韩精品最新网址| 久久99久久久欧美国产| 欧美一区二区三区视频免费播放| 亚洲国产wwwccc36天堂| 欧美三级视频在线播放| 亚洲成人777| 欧美一区二区三区在线视频| 午夜精品久久久久久久蜜桃app| 91老师国产黑色丝袜在线| 亚洲人成在线播放网站岛国|