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

📄 l1_system.c

📁 dz3000_51.0.0.4.rar
💻 C
📖 第 1 页 / 共 4 页
字号:

                badx += offsetx;
                bady += offsety;

                L2_WriteCDSPBadPixel((UCHAR)i, badx, bady);
        }

        L2_SetCDSPBadPixelMode(1);
#endif
//patch4.5@yichang@badpixel end


#if Audio
#if EmbCodec
	L2_EnableAudStream(0x02, 0x00);
#endif
#if AC97
#endif
#endif

printf("G_usPostJpegWidth = %d,G_usPostJpegHeight = %d\n",G_usPostJpegWidth,G_usPostJpegHeight);
printf("G_MHSize = %d,G_MVSize = %d\n",G_MHSize,G_MVSize);

        XBYTE[0x21a6] = 1;      // enable color brightness/contrast boost
	//patch4.5@richie@hue
        XBYTE[0x21ac] |= 0x01;      // enable color saturation/hue boost

        L2_ReadRevID(&revid);
        //if (revid < 2)  //Revision A/B did NOT support JPEG vertical scaling
        //        postJpegHeight = G_MVSize - 13;
        L2_SetCamMode(0);
//patch4.3@richie@ra0603
        L2_SetFrontImgOffsetm((K_PCCamera_Adjust_Width >> 2) << 1, (K_PCCamera_Adjust_Height >> 2) << 1);
//patch4.3@richie@ra0603
        L2_SetFrontImgSizem((G_MHSize - K_PCCamera_Adjust_Width), (G_MVSize - K_PCCamera_Adjust_Height));
        L2_SetCMOSPreview();

        //Joe@2003.3.21 9:31 mask begin
	//L2_TurnOnOffDisplay(0);
	//Joe@2003.3.21 9:31 mask end

        L2_SetDisplayMode(0, 0);
//version4.0 richie@ps0503 begin
//patch4.3@richie@ra0603
//patch5.0@richie@sdram mapping begin
        //L2_SetCDSPScale(G_MHSize - K_PCCamera_Adjust_Width, G_usPostJpegWidth + 16);
		L2_SetCDSPScale(G_MHSize - K_PCCamera_Adjust_Width, G_usPostJpegWidth);
//patch5.0@richie@sdram mapping end
        L2_SetAFBAddr(K_SDRAM_PreviewBufAddrA);
        L2_SetRFBAddr(K_SDRAM_PreviewBufAddrA);
//patch4.3@richie@ra0603
        L2_SetAFBSize(G_usPostJpegWidth, (G_MVSize - K_PCCamera_Adjust_Height) - 13);
        L2_SetRFBSize(G_usPostJpegWidth, (G_MVSize - K_PCCamera_Adjust_Height) - 13);
        L2_SetACDSPWidth(G_usPostJpegWidth);
        L2_SetRCDSPWidth(G_usPostJpegWidth);
//patch4.3@richie@ra0603
        L2_SetJPEGVscale((G_MVSize - K_PCCamera_Adjust_Height) - 13, G_usPostJpegHeight);
//version4.0 richie@ps0503 end
	//patch4.4.1@richie@noncompress begin
	if (G_ucNonCompFlag == 0)
	{
        	L2_SetImageType(5);
	}
	//patch4.4.1@richie@noncompress end
        L1_InitSPCA533(4);   //Call platform-independent L2 initialization
	//DbgPrint("L2_TurnOnOffDisplay13=%bu\n",13);
     //   L2_SetGPIOBit(15,0);     //hx@2003.4.28 for mito turn off lcd//wendy
//        L2_SetGPIOBit(7,0);     //hx@2003.4.28 for mito turn off lcd//wendy
	
}

//-----------------------------------------------------------------------------
//L1_InitVideoClip
//-----------------------------------------------------------------------------
//patch3.2@cytsai@0328
void L1_InitVideoClip(void) USING_0
{
        USHORT i;
        ULONG  tmp0;

        //UCHAR error;
        //PRINT_L1("    L1_InitVideoClip: Enter.\n");

        //version4.0@yichang@0513
        //richie@ae0226 //cytsai@0328
        XBYTE[0x21a6] = 0;      // disable color brightness/contrast boost
	//patch4.5@richie@hue
  	XBYTE[0x21ac] &= 0xFE; 			// disable color saturation boost

        L2_InitSDRAM(3);

	for(i=0;i<0x0200;i++) XBYTE[0x1C00+i] = AVIHeader[i];

	//patch5.0@richie@avi size begin
	XBYTE[0x1C40] = (UCHAR)(G_usVideoClip_Width); XBYTE[0x1C41] = (UCHAR)(G_usVideoClip_Width>>8);
	XBYTE[0x1C44] = (UCHAR)(G_usVideoClip_Height); XBYTE[0x1C45] = (UCHAR)(G_usVideoClip_Height>>8);
        XBYTE[0x1CA0] = (UCHAR)(G_usVideoClip_Width); XBYTE[0x1CA1] = (UCHAR)(G_usVideoClip_Width>>8);
	XBYTE[0x1CA2] = (UCHAR)(G_usVideoClip_Height); XBYTE[0x1CA3] = (UCHAR)(G_usVideoClip_Height>>8);
	XBYTE[0x1CB0] = (UCHAR)(G_usVideoClip_Width); XBYTE[0x1CB1] = (UCHAR)(G_usVideoClip_Width>>8);
	XBYTE[0x1CB4] = (UCHAR)(G_usVideoClip_Height); XBYTE[0x1CB5] = (UCHAR)(G_usVideoClip_Height>>8);
        tmp0 = (ULONG)G_usVideoClip_Width*G_usVideoClip_Height*3;
	//patch5.0@richie@avi size end
	XBYTE[0x1CC0] = (UCHAR)(tmp0);      XBYTE[0x1CC1] = (UCHAR)(tmp0>>8);
	XBYTE[0x1CC2] = (UCHAR)(tmp0>>16);  XBYTE[0x1CC3] = (UCHAR)(tmp0>>24);

        if(G_FrameRate == 10 || G_FrameRate == 20)
        {
                XBYTE[0x1C20] = 0xA0; XBYTE[0x1C21] = 0x86;
                XBYTE[0x1C22] = 0x01; XBYTE[0x1C23] = 0x00;
		XBYTE[0x1C80] = 0xA0; XBYTE[0x1C81] = 0x86;
                XBYTE[0x1C82] = 0x01; XBYTE[0x1C83] = 0x00;
        }
        else if(G_FrameRate == 15 || G_FrameRate == 30)
        {
                XBYTE[0x1C20] = 0x6B; XBYTE[0x1C21] = 0x04;
                XBYTE[0x1C22] = 0x01; XBYTE[0x1C23] = 0x00;
		XBYTE[0x1C80] = 0x6B; XBYTE[0x1C81] = 0x04;
                XBYTE[0x1C82] = 0x01; XBYTE[0x1C83] = 0x00;
        }

        L2_SetSRAMDMA(0x0C00);
	//patch5.0@richie@sdram mapping begin
	L2_SetDRAMDMA(K_SDRAM_AviCapHeaderBufAddr);
	L2_DoDMA(1,0,0x0200,0,0);
	for(i=0;i<0x0104;i++) XBYTE[0x1C00+i] = VideoHeader[i];
	//patch5.0@richie@avi size begin
        XBYTE[0x1CE8] = (UCHAR)(G_usVideoClip_Height>>8); XBYTE[0x1CE9] = (UCHAR)(G_usVideoClip_Height);
	XBYTE[0x1CEA] = (UCHAR)(G_usVideoClip_Width>>8); XBYTE[0x1CEB] = (UCHAR)(G_usVideoClip_Width);
	//patch5.0@richie@avi size end

        L2_SetSRAMDMA(0x0C00);          // fill A video clip buffer
	L2_SetDRAMDMA(K_SDRAM_AviCapVLCBufAddrA);
	L2_DoDMA(1,0,0x0104,0,0);
        L2_SetSRAMDMA(0x0C00);          // fill B video clip buffer
	L2_SetDRAMDMA(K_SDRAM_AviCapVLCBufAddrB);
	L2_DoDMA(1,0,0x0104,0,0);
	//patch5.0@richie@sdram mapping end
//patch4.5@cytsai@AVI record begin
/*
        // Video chunk 0x19E0 ~ 0x19EF
        XBYTE[0x19E0] = 0x30;   XBYTE[0x19E1] = 0x30;
        XBYTE[0x19E2] = 0x64;   XBYTE[0x19E3] = 0x63;
        XBYTE[0x19E4] = 0x10;   XBYTE[0x19E5] = 0x00;
        XBYTE[0x19E6] = 0x00;   XBYTE[0x19E7] = 0x00;
        // Audio chunk 0x19D0 ~ 0x19DF
        XBYTE[0x19D0] = 0x30;   XBYTE[0x19D1] = 0x31;
        XBYTE[0x19D2] = 0x77;   XBYTE[0x19D3] = 0x62;
        XBYTE[0x19D4] = 0x00;   XBYTE[0x19D5] = 0x00;
        XBYTE[0x19D6] = 0x00;   XBYTE[0x19D7] = 0x00;
        XBYTE[0x19DC] = 0x00;   XBYTE[0x19DD] = 0x02;
        XBYTE[0x19DE] = 0x00;   XBYTE[0x19DF] = 0x00;
*/
//patch4.5@cytsai@AVI record end
        //PRINT_L1("    L1_InitVideoClip: Exit.\n");
}

//-----------------------------------------------------------------------------
//L1_InitPowerOn
//-----------------------------------------------------------------------------
void L1_InitPowerOn(void) USING_0
{
        //UCHAR error;
	USHORT i;
        UCHAR tmp;
        //patch4.3@yichang@0611 for version B/C chip co-exist
        tmp = MemStretch;
        MemStretch = 0x01;


        //PRINT_L1("    L1_InitPowerOn: Enter.\n");
        //power control

        //Joe@2003.2.27 15:01 mask begin
        //XBYTE[0x2039] |= 0x80;	//gpio14
        //XBYTE[0x2031] |= 0x80;	//gpio14
        //Joe@2003.2.27 15:01 mask end

         //Joe@2003.2.19 19:00 mask for don't on lcd power begin
        //XBYTE[0x2032] |= 0x01; //gpio16
         //Joe@2003.2.19 19:00 mask for don't on lcd power end

         //Joe@2003.2.27 15:01 mask begin
        //XBYTE[0x2039] |= 0x80;  //cytsai@0201
        //XBYTE[0x203A] |= 0x01;	//gpio16
        //Joe@2003.2.27 15:02 mask end

        XBYTE[0x201C] = 0x00;
	 //Joe@2003.2.19 19:05 mask for this pin is Sensor reset begin
        //Power On 15V
        //XBYTE[0x2038] |= 0x80;
        //XBYTE[0x2030] |= 0x80;
	 //Joe@2003.2.19 19:05 mask for this pin is Sensor reset end
	//richie@0402

  	for (i = 0;i < 35535;i++)
        	;//delay


        //TV hue and saturation adjustment
        XBYTE[0X2D22]=0X40;
        XBYTE[0X2D23]=0X02;

	    //patch4.5@ada@improve power to shot performance begin
        //Set the address indices
        //L2_SetDisplayType(G_DisplayType);
        //L2_SetACDSPWidth(G_Hsize);
        //L2_SetRCDSPWidth(G_Hsize);
        //L2_SetBCDSPWidth(G_Hsize);
        //L2_SetAFBSize(G_Hsize,G_Vsize);
        //L2_SetBFBSize(G_Hsize,G_Vsize);
        //L2_SetAFBAddr(K_SDRAM_FrameBufAAddr);
        //L2_SetRFBAddr(K_SDRAM_FrameBufAAddr);
        //L2_SetBFBAddr(K_SDRAM_FrameBufBAddr);
        //L2_SetAVLCAddr(K_SDRAM_VideoVlcBufAAddr);
        //L2_SetBVLCAddr(K_SDRAM_VideoVlcBufBAddr);
		//patch4.5@ada@improve power to shot performance end

        L2_SetFOSDAddr(K_SDRAM_CharFontBufAddr);

		//patch4.5@ada@improve power to shot performance begin
        //L2_SetDCTAddr(K_SDRAM_DcTermBufAddr);
        //L2_WriteQTable(1, G_Image_QTableIndex, 0); //K_Q85

        //Color Correction Matrix (add by Max according to CYWu's params)
        //L2_SetColorC(0X04A,0X1FD,0X1F0,  //A11,A12,A13
        //             0X000,0X03B,0X1F8,  //A21,A22,A23
		//			 0X000,0X1E0,0X04F); //A31,A32,A33
        //Inital WB setting (Add by Max)
        //L2_SetWB( 0X03,   //ROffset
        //          0X00,   //GrOffset
        //          0X02,   //BOffset
        //          0X00,   //GbOffset
        //          0X04C,   //RGain
        //          0X040,   //GrGain
        //          0X054,   //BGain
        //          0X040);   //GbGain
		//patch4.5@ada@improve power to shot performance end

        L1_InitSPCA533(0);   //Call platform-independent L2 initialization

	//Joe@2003.2.27 15:22 modify begin
	/*
        // Setting the Real Time Clock
        L2_WriteRTC(&G_DATEINFO);
        */
/*//wendy@2004/9/8
        L3_ReadRTCData(0x20, &tmp);
        if (tmp != 0x55)
        {
           L2_WriteRTC(&G_DATEINFO); 
             L3_WriteRTCData(0x20, 0x55);
        }
*/
	//Joe@2003.2.27 15:22 modify end

        //patch4.3@yichang@0611 for version B/C chip co-exist
        MemStretch = tmp;
        // Load Bad Pixel Coordinates
        //L1_UpLoadBadPxlCoor((USHORT)(&Badcoor[0]));

        //yichang@patch4.3@0611 move to other place

        //Load 2 banks of font-based OSD data
        //FOSDtoDRAM(K_FOSD_Start_Bank, K_FOSD_Total_Bank, K_SDRAM_CharFontBufAddr);
        //Load 3 banks of graphic-based OSD data
	//GOSDtoDRAM(K_GRAFFONT_Width, K_GRAFFONT_Height, K_GOSD_Start_Bank, K_GOSD_Total_Bank, K_SDRAM_GrafFontBufAddr);

//ada@0207
/*        //CFA initialization
#ifdef CFAIDE
        L2_FlashMode(3,1,1);
        L2_CFInit(1,0x07,0x00);
        L2_CFReset(1);
#endif
#ifdef CFAMEM
        L2_FlashMode(4,1,1);
        L2_CFInit(0,0x07,0x00);
        L2_CFReset(0);
#endif
#ifdef SD
        if(L1_SDIdentification(512)!=0) error =1;
       	if(L1_SDCheckState()!=0) error =1;
        if(L1_SDSetBusMode(1)!=0) error =1;
        if(L1_SDEraseData(0 , 0x4000000)!=0) error =1;
#endif
*/
        //PRINT_L1("    L1_InitPowerOn: Exit.\n");
}

//-----------------------------------------------------------------------------
//L1_InitPlayback
//-----------------------------------------------------------------------------
// Playback mode related settings those are not handled by L2_InitXXX
// display device TV / STNLCD
// JPEG image size  : 1152x864
// Decompression to : 1152x864
// Scale down to    : 240x160 (G_DSPHsize x G_DSPVsize)
// Display buffer index : B fram buffer index
void L1_InitPlayback(void) USING_0
{
    //PRINT_L1("    L1_InitPlayback: Enter.\n");
	L2_SetJPEGVscale(G_Vsize, G_Vsize);  	//turn off JPEG Vertical scaling function	//cytsai@0219
	/*
	if(G_KeyState ==K_UI_BUTTON_PLAY_SWITCH)	//add  for debug
	{}
	else{
		L2_SetDisplayType(G_DisplayType);
	}
	//*/
	L2_SetDisplayType(G_DisplayType);
	L2_SetDisplaySrcImgSize(G_DSPHsize, G_DSPVsize, G_DisplayType);
//arlpha mask add @050308
        //L2_CtrlScreen(0);       //disable OSD         //cytsai@0128 // XiaoAo mask
		// L2_TurnOnOffDisplay(0); // XiaoAo mask
//arlpha mask end @050308
	//DbgPrint("L2_TurnOnOffDisplay10=%bu\n",10);
	// Disable frame rate conversion
	// set display buffer index is equal to B frame buffer index
	L2_SetDisplayMode(0x00, 0x10);

        //patch4.1@yichang@0516 reset to idle mode when Initial playback
        XBYTE[0x2000]=0x00;
        // set camera operation mode: playback
	L1_InitSPCA533(5);

	//L2_TurnOnOffDisplay (1);			// Turn on display
        //PRINT_L1("    L1_InitPlayback: Exit.\n");
}

//-----------------------------------------------------------------------------
//L1_InitDSC
//-----------------------------------------------------------------------------

void L1_InitDSC() USING_0
{
    //PRINT_L1("    L1_InitDSC: Enter.\n");

    //PRINT_L1("    L1_InitDSC: Exit.\n");
}

//-----------------------------------------------------------------------------
//L1_UICtrl
//-----------------------------------------------------------------------------
void L1_UICtrl() USING_0
{
     UCHAR mode, usbmode;
     UCHAR temp_key;
     #if (TURNKEY_OPTION == 1)
     L2_ConfigGPIOBit(18,0);
     L2_GetGPIOBit(18,&temp_key);
     #else
     L2_ConfigGPIOBit(1,0);
     L2_GetGPIOBit(1,&temp_key);
     #endif
     if(temp_key > 0)
     {
     	//Joe@2003.3.20 16:15 add begin
     	DELAY_10ms();
	DELAY_10ms();

⌨️ 快捷键说明

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