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

📄 initio.c

📁 台湾凌阳方案300万数码相机源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
	//patch4.4@richie@dsi end

//printf("G_Card_Type=%bx\n",G_Card_Type);
//printf("G_ucStorageType=%bx\n",G_ucStorageType);
}


//-----------------------------------------------------------------------------
//INITIO_SoftwareReset
//-----------------------------------------------------------------------------
void INITIO_SoftwareReset(void) USING_0
/*++

Routine Description:

        reset system by code

Arguments:

        none

Return Value:

        none

--*/
{
}

//-----------------------------------------------------------------------------
//INITIO_SetCameraSize
//-----------------------------------------------------------------------------
void INITIO_SetCameraSize(USHORT cameraMode) USING_0    //cch
/*++

Routine Description:

        set sensor width ,height ,Hsubsample ,Vsubsample

Arguments:

        cameraMode : 2 :dsc , 3:vido clip mode : 4: Pc camera

Return Value:

        none

--*/
{
        USHORT	k;
	//version4.0 richie@ps0503
	UCHAR	revID;
	PUCHAR	ProductDescriptor;
	PUCHAR	PcCameraSizeMapping;

        G_Interlace_Enable= 0;

	//version4.0 richie@ps0503 begin
	L2_ReadRevID(&revID);
	//printf("ID VERSION = %bx\n",revID);
	if (revID > 1)
	{
		ProductDescriptor = ProductDescriptor2;
		PcCameraSizeMapping = PcCameraSizeMapping2;
	}
	else
	{
		ProductDescriptor = ProductDescriptor1;
		PcCameraSizeMapping = PcCameraSizeMapping1;
	}
	//version4.0 richie@ps0503 end

//version4.0 richie@ps0503
//        DbgPrint("INITIO_SetCameraSize: DscIndex = %bx, ClipIndex = %bx, PccamIndex = %bx\n", G_ucDscIndex, G_ucClipIndex, G_ucPccameraIndex);

        if ( cameraMode == K_MODE_DSC )                 //DSC
        {
                k = 4 + (ProductDescriptor[3 + G_ucDscIndex] - 1)*6;
        }
        else if ( cameraMode == K_MODE_VIDEOCLIP )      //videoclip
        {
                k = 4 + (ProductDescriptor[3 + 8 * 1 + G_ucClipIndex] - 1)*6;
        }
        else if ( cameraMode == K_MODE_PCCAM )          // Pccamera   cch@10/24
        {
		//version4.0 richie@ps0503 begin
								//version4.0 richie@ps0503
                k = 4 + (ProductDescriptor[3 + 8*2 + G_ucPccameraIndex] - 1)*4;

		G_usPostJpegWidth = ((USHORT)PcCameraSizeMapping[k] << 8) | ((USHORT)PcCameraSizeMapping[k + 1]);
		G_usPostJpegHeight = ((USHORT)PcCameraSizeMapping[k + 2] << 8) | ((USHORT)PcCameraSizeMapping[k + 3]);

		L1_InitPCCam();

		//version4.0 richie@ps0503 end
        }
        else if ( cameraMode == K_MODE_IDLE )           // Idle       cch@10/24
        {
		k = 0;
        }

        //cytsai@0131
        G_Image_SensorWidth = (USHORT) K_SENSOR_CaptureWidth;   //width  of capture mode
        G_Image_SensorHeight = (USHORT) K_SENSOR_CaptureHeight; //height of capture mode
        G_Image_HSubSample = (UCHAR) 0;
        G_Image_VSubSample = (UCHAR) 0;

        //DbgPrint("INITIO_SetCameraSize: Width = %x, Height = %x, HSubSample = %bx, VSubSample = %bx\n", G_Image_SensorWidth, G_Image_SensorHeight, G_Image_HSubSample, G_Image_HSubSample);
}

//-----------------------------------------------------------------------------
//INITIO_GetCameraSizeIndex      //cch
//-----------------------------------------------------------------------------
void INITIO_GetCameraSizeIndex(USHORT index) USING_1
/*++

Routine Description:


Arguments:

        none

Return Value:

        none

--*/
{
        switch (index)
        {
                case 0x0001:      //Get Preview Size Index
                        G_pucCtrlDataPointer[0] = G_ucDscIndex;
                        break;

                case 0x0002:      //Get DSC Size Index
                        G_pucCtrlDataPointer[0] = G_ucDscIndex;
                        break;

                case 0x0003:      //Get Video Clip Size Index
                        G_pucCtrlDataPointer[0] = G_ucClipIndex;
                        break;

                case 0x0004:      //Get PC camera Index
                        G_pucCtrlDataPointer[0] = G_ucPccameraIndex;
                        break;

                case 0x0005:      //Get Playback Index
                        G_pucCtrlDataPointer[0] = G_ucDscIndex;
                        break;

                case 0x0011:      //Get Preview Size Index Max
                        G_pucCtrlDataPointer[0] = G_ucDscIndexMax;
                        break;

                case 0x0012:      //Get DSC Size Index Max
                        G_pucCtrlDataPointer[0] = G_ucDscIndexMax;
                        break;

                case 0x0013:      //Get Video Clip Size Index Max
                        G_pucCtrlDataPointer[0] = G_ucClipIndexMax;
                        break;

                case 0x0014:      //Get PC camera Index Max
                        G_pucCtrlDataPointer[0] = G_ucPccameraIndexMax;
                        break;

                case 0x0015:      //Get Playback Index
                        G_pucCtrlDataPointer[0] = G_ucDscIndexMax;
                        break;

                default:
                        break;
        }
}

//-----------------------------------------------------------------------------
//INITIO_SetCameraSizeIndex     //cch
//-----------------------------------------------------------------------------
void INITIO_SetCameraSizeIndex(USHORT index) USING_1
/*++

Routine Description:


Arguments:

        none

Return Value:

        none

--*/
{
        switch (index)
        {
                case 0x0001:      //Set Preview Size Index
                        G_ucDscIndex = G_pucCtrlDataPointer[0];
                        break;

                case 0x0002:      //Set DSC Size Index
                        G_ucDscIndex = G_pucCtrlDataPointer[0];
                        break;

                case 0x0003:      //Set Video Clip Size Index
                        G_ucClipIndex = G_pucCtrlDataPointer[0];
                        break;

                case 0x0004:      //Set PC camera Index
                        G_ucPccameraIndex = G_pucCtrlDataPointer[0];
                        break;

                case 0x0005:      //St Playback Index
                        G_ucDscIndex = G_pucCtrlDataPointer[0];
                        break;

                case 0x0011:      //St Preview Size Index Max
                        G_ucDscIndexMax = G_pucCtrlDataPointer[0];
                        break;

                case 0x0012:      //Set DSC Size Index Max
                        G_ucDscIndexMax = G_pucCtrlDataPointer[0];
                        break;

                case 0x0013:      //Set Video Clip Size Index Max
                        G_ucClipIndexMax = G_pucCtrlDataPointer[0];
                        break;

                case 0x0014:      //Set PC camera Index Max
                        G_ucPccameraIndexMax = G_pucCtrlDataPointer[0];
                        break;

                case 0x0015:      //Set Playback Index Max
                        G_ucDscIndexMax = G_pucCtrlDataPointer[0];
                        break;

                default:
                        break;
        }
}

//-----------------------------------------------------------------------------
//INITIO_GetProductInfo
//-----------------------------------------------------------------------------
void INITIO_GetProductInfo(void) USING_0
/*++

Routine Description:

        get product infomation from infodata.h

Arguments:

        none

Return Value:

        none

--*/
{
        UCHAR i;
	//version4.0 richie@ps0503
	UCHAR revID;
	PUCHAR	ProductDescriptor;

        G_ucSensorType  = 0;
        G_ucSensorSize  = 0;
        G_ucDscIndex = 0;
        G_ucClipIndex = 0;
        G_ucPccameraIndex = 0;         //cch
        G_ucDscIndexMax = 0;
        G_ucClipIndexMax = 0;
        G_ucPccameraIndexMax = 0;      //cch@10/15

	//version4.0 richie@ps0503 begin
	L2_ReadRevID(&revID);
	if (revID > 1)
	{
		ProductDescriptor = ProductDescriptor2;
	}
	else
	{
		ProductDescriptor = ProductDescriptor1;
	}
	//version4.0 richie@ps0503 end


        G_pucCtrlDataPointer = G_ucCtrlData;
        for (i = 0; i < K_ProductDescriptorSize; i++)
                G_pucCtrlDataPointer[i] = (UCHAR) ProductDescriptor[i];

        G_ucSensorType = G_pucCtrlDataPointer[2];
        G_ucSensorSize = G_pucCtrlDataPointer[3];

        G_ucDscIndex = G_pucCtrlDataPointer[3+8*1];
        G_ucClipIndex = G_pucCtrlDataPointer[3+8*2];
        G_ucPccameraIndex = G_pucCtrlDataPointer[3+8*3];

        //DbgPrint("INITIO_GetProductInfo: DscIndex = %bx, ClipIndex = %bx, PccamIndex = %bx\n", G_ucDscIndex, G_ucClipIndex, G_ucPccameraIndex);

        i = 0;
        G_ucDscIndexMax=0;
        while ( i < 8)
        {
                if ( G_pucCtrlDataPointer[4+i] != 0 )
                {
                        G_ucDscIndexMax++;
                }
                else
                {
                        break;
                }
                i++;
        }

        i = 0;
        G_ucClipIndexMax=0;
        while ( i < 8)
        {
                if ( G_pucCtrlDataPointer[12+i] != 0 )
                {
                        G_ucClipIndexMax++;
                }
                else
                {
                        break;
                }
                i++;
        }

        i = 0;
        G_ucPccameraIndexMax=0;
        while ( i < 8)
        {
                if ( G_pucCtrlDataPointer[20+i] != 0 )
                {
                        G_ucPccameraIndexMax++;
                }
                else
                {
                        break;
                }
                i++;
        }


        if ( G_ucClipIndexMax > 7 )
                G_ucClipIndexMax = 7;

        if ( G_ucDscIndexMax > 7 )
                G_ucDscIndexMax = 7;

        if ( G_ucPccameraIndexMax > 7 )
                G_ucPccameraIndexMax = 7;
}

//-----------------------------------------------------------------------------
//INITIO_GetInformation
//-----------------------------------------------------------------------------
void INITIO_GetInformation(USHORT infoType) USING_1
/*++

Routine Description:

        get system information

Arguments:

        none

Return Value:

        none

--*/
{
        USHORT i = infoType;
	//version4.0 richie@ps0503
	UCHAR	revID;
	PUCHAR	ProductDescriptor;
	PUCHAR	PcCameraSizeMapping;
	UCHAR   PcCameraSizeMappingSize;

	//version4.0 richie@ps0503 begin
	L2_ReadRevID(&revID);
	if (revID > 1)
	{
		ProductDescriptor = ProductDescriptor2;
		PcCameraSizeMapping = PcCameraSizeMapping2;
		PcCameraSizeMappingSize = K_PcCameraSizeMapping2;
	}
	else
	{
		ProductDescriptor = ProductDescriptor1;
		PcCameraSizeMapping = PcCameraSizeMapping1;
		PcCameraSizeMappingSize = K_PcCameraSizeMapping1;
	}
	//version4.0 richie@ps0503 end

        switch (infoType)
        {
                case 0x0000:      //Get ProductDescriptor information
                        for (i = 0; i < K_ProductDescriptorSize; i++)
                                G_pucCtrlDataPointer[i] = (UCHAR) ProductDescriptor[i];
                        break;

                case 0x0001:      //Get SensorSizeInformation
			//version4.0 richie@ps0503
                        for (i = 0; i < PcCameraSizeMappingSize; i++)
                                G_pucCtrlDataPointer[i] = PcCameraSizeMapping[i];
                        break;

                case 0x0002:      //Get DscSizeMapping Information
                        for (i = 2; i < K_DscSizeMapping; i++)
                                G_pucCtrlDataPointer[i] = DscSizeMapping[i];
                        break;

                case 0x0064:      //Get Storage information
                        i = DOS_GetClusterSize();
                        i /=  512;
                        G_pucCtrlDataPointer[0] = i;
                        G_pucCtrlDataPointer[1] = i >> 8;
                        for (i = 2; i < K_CtrlDataSize; i++)
                                G_pucCtrlDataPointer[i] = i;
                        //Card_GetInformation(G_pucCtrlDataPointer);   // @WYEO, 1008
                        break;

		//version4.0 richie@0514
                case 0x0065:      //Get Storage information   compiler error
                        G_pucCtrlDataPointer[48] = 0;         //cch@02/26
                        Card_GetInformation(&(G_pucCtrlDataPointer[0])); // @HISWYEO
                        break;

                default:
                        break;
        }
}
//-----------------------------------------------------------------------------
//L2_TurnOnOffDisplayFrist
//-----------------------------------------------------------------------------

void L2_TurnOnOffDisplayFrist(void) USING_0
{
	UCHAR tmp;

	tmp = MemStretch;
	MemStretch = 0x01;

			if ((XBYTE[0x2001] & 0x01) > 0)	//Make sure TV output is enabled
			{
				while ((XBYTE[0x2DA0] & 0x08) > 0);	//wait TV VD low
				while ((XBYTE[0x2DA0] & 0x08) == 0);	//wait TV VD high
			}
			//Joe@2003.3.5 13:43 add end

			XBYTE[0x2001] = 0x05;
			XBYTE[0x2D01] = XBYTE[0x2D01] | 0x10;
			XBYTE[0x2013] = XBYTE[0x2013] | 0x18; // start the 27 and 13.5MHz source
			XBYTE[0x2D73]&= 0xfb; //wendy@2004/8/5
			DELAY_1ms();
			XBYTE[0x2D73]|= 0x04; //wendy@2004/8/5

#if(TURNKEY_OPTION == 1)
			L2_SetGPIOBit(15,0);	//LCD_BACKLIGHT
#else
			L2_SetGPIOBit(16,1);	 //Back light(5V,18V)
#endif
				 MemStretch=tmp;

				}

⌨️ 快捷键说明

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