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

📄 app_dol2function.c

📁 台湾凌阳方案300万数码相机源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
/*++

Copyright (c) 2001 Sunplus Technology Co., Ltd.

Module Name:

        L1_DoFunction.c

Abstract:

                Select the corresponding L1 L2 Function for USB vendor command

Environment:

        Keil C51 Compiler

Revision History:

        11/12/2001      YPWang    created

--*/

//=============================================================================
//Header file
//=============================================================================
#include "general.h"
#include "main.h"
#include "App.h"
#include "initio.h"
//=============================================================================
//Symbol
//=============================================================================
//-----------------------------------------------------------------------------
//Constant
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
//Variable
//-----------------------------------------------------------------------------

//=============================================================================
//Program
//=============================================================================

//-----------------------------------------------------------------------------
//App_DoL2Function_Audio
//-----------------------------------------------------------------------------
/*
routine description:
                Do specified Audio L2 Function
arguments:
                L2_FuncID       - L2 Function ID
                ArgBuf  - Pointer to the argument buffer

return value:
                0x00    - success

*/

UCHAR App_DoL2Function_Audio(UCHAR L2_FuncID, ULONG *ArgBuf)
{

                USHORT* pAC97RegValue = 0; // WWWW

                switch (L2_FuncID)
        {
                        case 0x81:
                                L2_InitAC97();;
                        break;
                        case 0x82:
                                L2_RdAC97Reg((UCHAR)ArgBuf[0], pAC97RegValue);
                        break;
                        case 0x83:
                                L2_WrAC97Reg((UCHAR)ArgBuf[0], (USHORT)ArgBuf[1]);
                        break;
                        case 0x85:
                                L2_SetEmbAudCodecVol((UCHAR)ArgBuf[0]);
                        break;
                        case 0x86:
                                L2_EnableAudStream((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
                        break;
                        case 0x87:
                                L2_PlayAud((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2], (UCHAR)ArgBuf[3]);
                        break;
                        case 0x88:
                               L2_RecordAudToDRAM((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2]);
                        break;
                        case 0x89:
                               L2_PlayAudFromDRAM((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2], (UCHAR)ArgBuf[3] );
                        break;
                        case 0x8b:
//                                L2_TestAud((ULONG)ArgBuf[0]);
                        break;
                        case 0x90:
                               L2_RecordAudDMAMode((UCHAR) ArgBuf[0]);
                        break;
                        case 0x91:
                               L2_PlayAudDMAMode(ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2]);
                        break;


                        default:
                        break;
                }

                return L2K_SUCCESS;

}


//-----------------------------------------------------------------------------
//App_DoL2Function_Global
//-----------------------------------------------------------------------------
/*
routine description:
                Do specified Global L2 Function
arguments:
                L2_FuncID       - L2 Function ID
                ArgBuf  - Pointer to the argument buffer

return value:
                0x00    - success

*/

UCHAR App_DoL2Function_Global(UCHAR L2_FuncID, ULONG *ArgBuf)
{
  UCHAR tmp0;
  ULONG ltmp0;
  struct DATESTC RTC;

  RTC.Second = 30;
  RTC.Minute = 46;
  RTC.Hour = 17;
  RTC.Day = 6;
  RTC.Month = 12;
  RTC.Year = 1;

  switch (L2_FuncID)
  {

//segament 0
    case 0x00:
      L2_Suspend((UCHAR)ArgBuf[0]);
    break;

    case 0x01:
      L2_Resume();
    break;

    case 0x02:
      L2_PowerDown();
    break;

    case 0x03:
      L2_SetModuPowerDown((USHORT)ArgBuf[0]);
    break;

    case 0x04:
      L2_SetCPUClock((UCHAR)ArgBuf[0]);
    break;

    case 0x05:
    {
      L2_PowerDown();
      L2_PowerUp();
    }
    break;

    case 0x06:
      L2_SetModuPowerUp((USHORT)ArgBuf[0]);
    break;

//segament 1
    case 0x10:
      L2_ConfigGTimer((UCHAR)ArgBuf[0]);
    break;

    case 0x11:
      L2_StartGTimer();
    break;

    case 0x12:
      L2_StopGTimer();
    break;

    case 0x13:
      L2_WriteGTimer((ULONG)ArgBuf[0]);
    break;

    case 0x14:
      L2_ReadGTimer(&ltmp0);
    break;

    case 0x15:
      L2_Wait((ULONG)ArgBuf[0]);
    break;

//segament 2
    case 0x20:
      L2_WriteRTC(&RTC);
    break;

    case 0x21:
      L2_ReadRTC(&RTC);
    break;

    case 0x22:
      L2_WriteAlarm(&RTC);
    break;

    case 0x23:
      L2_ReadAlarm(&RTC);
    break;

//segament 3
    case 0x30:
      L2_ConfigPG((ULONG)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2],
                  (USHORT)ArgBuf[3], (USHORT)ArgBuf[4], (UCHAR)ArgBuf[5],
                  (UCHAR)ArgBuf[6], (UCHAR)ArgBuf[7], (UCHAR)ArgBuf[8],
                  (UCHAR)ArgBuf[9], (UCHAR)ArgBuf[10]);
    break;

    case 0x31:
      L2_StartPG();
    break;

    case 0x32:
      L2_StopPG();
    break;

//segament 4
    case 0x40:
      L2_ConfigUI((UCHAR)ArgBuf[0]);
    break;

    case 0x41:
      L2_WakeUI();
    break;

    case 0x42:
      L2_WriteUI((USHORT)ArgBuf[0]);
    break;

    case 0x43:
      L2_ReadUI(&tmp0);
    break;

//segament 5
    case 0x50:
      L2_ConfigGPIOBit((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
    break;

    case 0x51:
      L2_ConfigGPIOByte((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
    break;

    case 0x52:
      L2_SetGPIOBit((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
    break;

    case 0x53:
      L2_SetGPIOByte((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
    break;

    case 0x54:
      L2_GetGPIOBit((UCHAR)ArgBuf[0], &tmp0);
    break;

    case 0x55:
      L2_GetGPIOByte((UCHAR)ArgBuf[0], &tmp0);
    break;

//segament A
    case 0xA0:
      L2_InitGlobal((UCHAR)ArgBuf[0]);
    break;

    case 0xA1:
      L2_SetTGPll((UCHAR)ArgBuf[0]);
    break;

    case 0xA2:
      L2_ReadRevID(&tmp0);
    break;

    case 0xA3:
      L2_SetCamMode((UCHAR)ArgBuf[0]);
    break;

    case 0xA4:
      L2_GetCamMode(&tmp0);
    break;

    case 0xA5:
      L2_WaitVD((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
    break;

    case 0xA6:
      L2_ReadIOTrap(&tmp0);
    break;

#ifdef TestModeEn

    case 0xA7:
      L2_TestGlobal((UCHAR)ArgBuf[0]);
    break;

#endif

    default:
    break;
  }

  return L2K_SUCCESS;

}


//-----------------------------------------------------------------------------
//App_DoL2Function_CDSP
//-----------------------------------------------------------------------------
/*
routine description:
                Do specified CDSP L2 Function
arguments:
                L2_FuncID       - L2 Function ID
                ArgBuf  - Pointer to the argument buffer

return value:
                0x00    - success

*/

UCHAR App_DoL2Function_CDSP(UCHAR L2_FuncID, ULONG *ArgBuf)
{
  UCHAR tmp0, tmp1, tmp2, i;
  USHORT stmp0, stmp1;
  SHORT sstmp0;
  ULONG ltmp0, ltmp1;
  LONG sltmp0, sltmp1;

  CHAR tmpfac[25];

  switch (L2_FuncID)
  {

//segament 0
    case 0x00:
      L2_SetCDSPBadPixelMode((UCHAR)ArgBuf[0]);
    break;

    case 0x01:
      L2_WriteCDSPBadPixel((UCHAR)ArgBuf[0], (USHORT)ArgBuf[1], (USHORT)ArgBuf[2]);
    break;

    case 0x02:
      L2_ReadCDSPBadPixel((UCHAR)ArgBuf[0], &stmp0, &stmp1);
    break;

//segament 1
    case 0x10:
      L2_SetCDSPScale((USHORT)ArgBuf[0], (USHORT)ArgBuf[1]);
    break;

//segament 2
    case 0x20:
      L2_SetWB((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2],
               (UCHAR)ArgBuf[3], (USHORT)ArgBuf[4], (USHORT)ArgBuf[5],
               (USHORT)ArgBuf[6], (USHORT)ArgBuf[7]);
    break;

    case 0x21:
      L2_SetColorC((USHORT)ArgBuf[0], (USHORT)ArgBuf[1], (USHORT)ArgBuf[2],
                   (USHORT)ArgBuf[3], (USHORT)ArgBuf[4], (USHORT)ArgBuf[5],
                   (USHORT)ArgBuf[6], (USHORT)ArgBuf[7], (USHORT)ArgBuf[8]);
    break;

    case 0x22:
      L2_SetLutGamma((UCHAR)ArgBuf[0]);
    break;

    case 0x23:
      L2_SetYEdge((UCHAR)ArgBuf[0]);
    break;

    case 0x24:
      L2_SetYUVAvg((UCHAR)ArgBuf[0]);
    break;

    case 0x25:
      L2_SetBriCont((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1]);
    break;

    case 0x26:
      L2_SetHueSat((USHORT)ArgBuf[0], (UCHAR)ArgBuf[1]);
    break;

//segament 3
    case 0x30:
      L2_ConfigWindow((UCHAR)ArgBuf[0], (UCHAR)ArgBuf[1], (UCHAR)ArgBuf[2],
                      (USHORT)ArgBuf[3]);
    break;

    case 0x31:
      L2_ReadAEWindow((UCHAR)ArgBuf[0], &tmp0);
    break;

    case 0x32:
      L2_ReadRYWindow((UCHAR)ArgBuf[0], &sstmp0);
    break;

    case 0x33:

⌨️ 快捷键说明

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