⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 saa7113.c

📁 hreadx实时嵌入式操作系统源代码,ARM移植. threadx是一个很好的多任务实时嵌入式操作系统
💻 C
📖 第 1 页 / 共 3 页
字号:
    
    rGPJDAT &= ~(0x1 << 12);                                            /*  RESET 输出低电平            */
    OSTimeDly(1);
    rGPJDAT |=  (0x1 << 12);                                            /*  RESET 输出高电平            */

    rGPJCON  =  iSave;                                                  /*  还原原始功能                */

    OSTimeDly(1);                                                       /*  短暂延迟                    */
}
/*********************************************************************************************************
** Function name:           saa7113Init
** Descriptions:            SAA7113 视频采集卡初始化
** input parameters:        NONE
** output parameters:       NONE
** Returned value:          NONE
** Created by:              Hanhui
** Created Date:            2007/12/13
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void  saa7113Init (void)
{
    int                 i;
    int                 iSendNum;
    __SAA7113_PARAM    *psaaparamTemp = &__GucSaa7113InitList[0];       /*  参数序列指针                */
    I2C_SUB_ADDR        i2csaddrTemp;                                   /*  子地址控制块                */
    
    saa7113Reset();                                                     /*  复位 SAA7113H               */
    
    i2cDevOpen(&__Gi2cdevSaa7113, 0, __SAA7113_ADDR, 100000);           /*  创建 I2C 总线设备           */
    
    i2csaddrTemp.ucSubAddrNum = 1;                                      /*  仅使用 一个 子地址          */
    
    for (i = 0; i < 255; i++) {                                         /*  最多 255 个参数             */
    
        if (psaaparamTemp->ucAddr == 0x00) {
            break;                                                      /*  结束初始化序列              */
        }
        
        i2csaddrTemp.ucSubAddrArry[0] = psaaparamTemp->ucAddr;          /*  保存子地址                  */
        
        i2cDevIoctl(&__Gi2cdevSaa7113, 
                    I2C_SET_SUB_ADDR, 
                    (int)&i2csaddrTemp);                                /*  设置子地址                  */
                    
        iSendNum = i2cDevWrite(&__Gi2cdevSaa7113, 
                               (char *)&psaaparamTemp->ucArg, 1);       /*  写入参数                    */
        if (iSendNum < 1) {
            __SAA7113_ERROR_OUT("saa7113 init error\r\n");
        }
        
        psaaparamTemp++;                                                /*  下一个参数                  */
    }
    
    __GsaactxContext.ucChannelMode = 0;                                 /*  通道模式                    */
    __GsaactxContext.ucBrightness  = 0x80;                              /*  亮度                        */
    __GsaactxContext.ucContrast    = 0x47;                              /*  对比度                      */
    __GsaactxContext.ucSaturation  = 0x42;                              /*  饱和度                      */
    __GsaactxContext.ucHue         = 0x01;                              /*  色调                        */
}
/*********************************************************************************************************
** Function name:           saa7113GetContext
** Descriptions:            SAA7113 视频采集卡获得工作参数
** input parameters:        NONE
** output parameters:       NONE
** Returned value:          工作参数
** Created by:              Hanhui
** Created Date:            2007/12/13
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
SAA7113_CONTEXT  saa7113GetContext (void)
{
    return  (__GsaactxContext);
}
/*********************************************************************************************************
** Function name:           saa7113GetVersion
** Descriptions:            SAA7113 视频采集卡版本
** input parameters:        NONE
** output parameters:       NONE
** Returned value:          版本号
** Created by:              Hanhui
** Created Date:            2007/12/13
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned char  saa7113GetVersion (void)
{
    int                 iRecvNum;
    unsigned char       ucVersion;
    I2C_SUB_ADDR        i2csaddrTemp;                                   /*  子地址控制块                */
    
    i2csaddrTemp.ucSubAddrNum = 1;                                      /*  仅使用 一个 子地址          */
    
    i2csaddrTemp.ucSubAddrArry[0] = 0x00;                               /*  0 号寄存器                  */
    
    i2cDevIoctl(&__Gi2cdevSaa7113, 
                I2C_SET_SUB_ADDR, 
                (int)&i2csaddrTemp);                                    /*  设置子地址                  */
                
    iRecvNum = i2cDevRead(&__Gi2cdevSaa7113, 
                          (char *)&ucVersion, 1);                       /*  读出参数                    */
    if (iRecvNum < 1) {
        __SAA7113_ERROR_OUT("saa7113 init error\r\n");
    }
               
    return  (ucVersion);
}
/*********************************************************************************************************
** Function name:           saa7113SetChannelMode
** Descriptions:            SAA7113 视频采集卡设置通道模式
** input parameters:        ucChannelMode   通道模式
** output parameters:       NONE
** Returned value:          NONE
** Created by:              Hanhui
** Created Date:            2007/12/13
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void  saa7113SetChannelMode (unsigned char  ucChannelMode)
{
    int                 iSendNum;
    unsigned char       ucTemp;
    I2C_SUB_ADDR        i2csaddrTemp;                                   /*  子地址控制块                */
    
    i2csaddrTemp.ucSubAddrNum = 1;                                      /*  仅使用 一个 子地址          */
    
    i2csaddrTemp.ucSubAddrArry[0] = 0x02;                               /*  0x02 号寄存器               */
    
    i2cDevIoctl(&__Gi2cdevSaa7113, 
                I2C_SET_SUB_ADDR, 
                (int)&i2csaddrTemp);                                    /*  设置子地址                  */
                
    i2cDevRead(&__Gi2cdevSaa7113, 
               (char *)&ucTemp, 1);                                     /*  读出参数                    */
               
    ucTemp = (unsigned char)((ucTemp & 0xF0) | ucChannelMode);          /*  设置通道模式                */
    
    iSendNum = i2cDevWrite(&__Gi2cdevSaa7113, 
                           (char *)&ucTemp, 1);                         /*  写入参数                    */
    if (iSendNum < 1) {
        __SAA7113_ERROR_OUT("saa7113 init error\r\n");
    }
                
    __GsaactxContext.ucChannelMode = ucChannelMode;
}
/*********************************************************************************************************
** Function name:           saa7113SetField
** Descriptions:            SAA7113 视频采集卡场选择 (仅适合于强制场选择, 不适用于自动场检测)
** input parameters:        ucField     场选择
** output parameters:       NONE
** Returned value:          NONE
** Created by:              Hanhui
** Created Date:            2007/12/13
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void  saa7113SetField (unsigned char  ucField)
{
    int                 iSendNum;
    unsigned char       ucTemp;
    I2C_SUB_ADDR        i2csaddrTemp;                                   /*  子地址控制块                */
    
    i2csaddrTemp.ucSubAddrNum = 1;                                      /*  仅使用 一个 子地址          */
    
    i2csaddrTemp.ucSubAddrArry[0] = 0x08;                               /*  0x08 号寄存器               */
    
    i2cDevIoctl(&__Gi2cdevSaa7113, 
                I2C_SET_SUB_ADDR, 
                (int)&i2csaddrTemp);                                    /*  设置子地址                  */
                
    i2cDevRead(&__Gi2cdevSaa7113, 
               (char *)&ucTemp, 1);                                     /*  读出参数                    */
               
    if (__SAA7113_50HZ_625_LINE == ucField) {
        ucTemp = (unsigned char)(ucTemp & ~(1 << 6));                   /*  清除 D6                     */
    } else {
        ucTemp = (unsigned char)(ucTemp |  (1 << 6));                   /*  置位 D6                     */
    }
    
    iSendNum = i2cDevWrite(&__Gi2cdevSaa7113, 
                           (char *)&ucTemp, 1);                         /*  写入参数                    */

    if (iSendNum < 1) {
        __SAA7113_ERROR_OUT("saa7113 init error\r\n");
    }
}
/*********************************************************************************************************
** Function name:           saa7113SetBrightness
** Descriptions:            SAA7113 视频采集卡设置亮度
** input parameters:        ucBrightness     亮度
** output parameters:       NONE
** Returned value:          NONE
** Created by:              Hanhui
** Created Date:            2007/12/13
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -