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

📄 l1_system.c

📁 dz3000_51.0.0.4.rar
💻 C
📖 第 1 页 / 共 4 页
字号:
	#if (TURNKEY_OPTION == 1)
	L2_GetGPIOBit(18,&temp_key);
	#else
	L2_GetGPIOBit(1,&temp_key);
	#endif
	if(temp_key > 0)
	//Joe@2003.3.20 16:15 add end
	{
		G_UI_USBConnect = K_UI_USB_DISCONNECT; //yichang

		if(G_Timer0StopFlag)
		{
			TIMER0_Start();
			G_Timer0StopFlag = 0;
		}
	}
     }
     else
     {
     	//Joe@2003.3.20 16:15 add begin
     	DELAY_10ms();DELAY_10ms();
	#if (TURNKEY_OPTION == 1)
	L2_GetGPIOBit(18,&temp_key);
	#else
	L2_GetGPIOBit(1,&temp_key);
	#endif
	if(temp_key == 0)
	//Joe@2003.3.20 16:15 add end
	{
	      mode = (UCHAR)(((G_UIStatusH& UI_Status_Level2_Mask) >> 8) - 1);
		usbmode = (UCHAR)(((G_UIStatusH& UI_Status_Level1_Mask) >> 12) - 1);
		if((G_KeyState ==K_UI_BUTTON_PCCAM_SWITCH)||(G_KeyState ==K_UI_BUTTON_PLAY_SWITCH)||((G_KeyState==K_UI_BUTTON_NULL)&&(((mode==3)&&(usbmode==0))||((mode==0)&&(usbmode==1))||(mode==1))))
		{
                     G_UI_USBConnect = K_UI_USB_CONNECT; //yichang

        		if(!G_Timer0StopFlag)
		       {
			 	TIMER0_Stop();
			 	G_Timer0StopFlag = 1;        //wendy
		       }
    
		}
		else
		{
			G_UI_USBConnect = K_UI_USB_CONNECT;//K_UI_USB_DISCONNECT; //yichang
		}
		}
     	}

	if( ((G_UIStatusH & 0xff00) == K_UISTATUS_DSC_PREVIEW) ||( (G_UIStatusH & 0xff00)== K_UISTATUS_DSC_VIDEO))
      		UI_Get_FoucsSwitch();//Davis:patch4.0.0.1_2005/Jun/15		

	if(G_KeyState==K_UI_BUTTON_NULL)
	{
 		usbmode = (UCHAR)(((G_UIStatusH& UI_Status_Level1_Mask) >> 12) - 1);
 		mode = (UCHAR)(((G_UIStatusH& UI_Status_Level2_Mask) >> 8) - 1);
	 	if(G_UI_USBConnect == K_UI_USB_CONNECT)
 		{
			if( (mode == K_UI_MODE_USB_PCCAM)&& (usbmode == K_UI_MODE_DSC) )	
        		{           
        			G_KeyState=K_UI_BUTTON_PCCAM_SWITCH;
             		UI_UsbDPlusPullHigh(0);
				DELAY_100ms();
        		}
	
			else if( (mode == K_UI_MODE_USB_MASS_STORAGE)&& (usbmode == K_UI_MODE_DSC) )
			{
				 UI_UsbDPlusPullHigh(0);
		 		DELAY_100ms();
		 		G_KeyState=K_UI_BUTTON_PLAY_SWITCH;
			}
			else
			{

			}
 		}
 	else
 	{
	 if( (mode == K_UI_MODE_USB_PCCAM)&& (usbmode == K_UI_MODE_USB) )	 
	{			 
		 G_KeyState=K_UI_BUTTON_PCCAM_SWITCH;
	        UI_UsbDPlusPullHigh(0);
		 DELAY_100ms();
       }
	 else if( (mode == K_UI_MODE_USB_MASS_STORAGE)&& (usbmode == K_UI_MODE_USB) )
	 {
		  UI_UsbDPlusPullHigh(0);
		  DELAY_100ms();
		  G_KeyState=K_UI_BUTTON_PLAY_SWITCH;
	 }
	 else
	 {
	 
	 }
 }

}
//wendy@2004/9/8
else
{
//Davis@05.03.14 close if usb plugin MSDC and PC CAM can't change
//if(G_UI_USBConnect == K_UI_USB_DISCONNECT)
	{
		if((G_UIStatusH==K_UISTATUS_USBMODE_PCCAM)||(G_UIStatusH==K_UISTATUS_USBMODE_MASS))
		{
			if(( G_KeyState==K_UI_BUTTON_PREVIEW_SWITCH)||( G_KeyState==K_UI_BUTTON_VIDEO_SWITCH)||( G_KeyState==K_UI_BUTTON_AUDIO_SWITCH))
			UI_UsbDPlusPullHigh(0);
			DELAY_100ms();
		}
	}
//wendy@2004/9/8
}

     if(G_KeyState !=  K_UI_BUTTON_NULL)
     {

     	//Joe@2003.2.25 9:54 add begin
     	G_AutoPowerOffCount = 0;
     	//Joe@2003.2.25 9:54 add end

           if(G_UI_USBConnect == K_UI_USB_CONNECT)
           {
       
		if((G_KeyState ==K_UI_BUTTON_PCCAM_SWITCH)||(G_KeyState ==K_UI_BUTTON_PLAY_SWITCH))
		{
			UI_SendMessage(G_KeyState, K_UI_GPIO_USB_KEYPRESS);                        
		//Joe@2003.3.7 12:52 add begin
                	UI_UsbDPlusPullHigh(1);
        //Joe@2003.3.7 12:52 add end
	   	}
          }
           
           else
           {
		UI_SendMessage(G_KeyState, K_UI_GPIO_KEYPRESS);
	   }

     }

//    UI_PrintOSDNumber(G_AutoPowerOffCount, 2,2, 4);
//    UI_PrintOSDNumber(G_AutoTimeInSec, 2,3,4);
	 
	 
}
//-----------------------------------------------------------------------------
//L1_UpLoadGOSD
//-----------------------------------------------------------------------------
/*++

Routine Description:
        Load Graphic OSD from ROM and de-compresss(Q=1) it to SDRAM

Arguments:
		RomAddr		- 	ROM starting address
		GOSDAddr	-	Graphic OSD location in SDRAM
		nByte		-   number of bytes to be uploaded
		Hsize		-   OSD picture horizontal size
		Vsize		-   OSD picture vertical size
		TempAddr	-   free spcae in SDRAM for decompression
Return Value:
		0x00	- success
		others	- error
--*/

UCHAR L1_UpLoadGOSD(ULONG NANDAddr, ULONG nByte, USHORT OSDHsize, USHORT OSDVsize) USING_0
{
	  UCHAR QIndex;



		//PRINT_L1("    L1_UpLoadGOSD: Enter\n");

		// Read the Q table index
		L2_ReadQTable(0, &QIndex, 0);
		// read graphics OSD vlc stream from NAND flash (address: NANDAddr) to AFB
		//patch5.0@richie@sdram mapping
		L1_NANDtoDRAM(K_SDRAM_ImageCaptureBufAddr, NANDAddr, nByte);
		// set Q table = all 1's
		L2_WriteQTable(0x00, K_Q1, 0);					// parm2=0: Q=1;
		// decompress the vlc stream from AFB to DRAM address "GOSDAddr"
		//patch5.0@richie@sdram mapping
		L2_DeCompress(K_SDRAM_ImageCaptureBufAddr, OSDHsize, OSDVsize, K_SDRAM_GrafFontBufAddr, 0x00, 0x00, 0x00);
//		L2_TurnOnOffDisplay(1);
		// restore the Q table setting
		L2_WriteQTable(0x01, QIndex, 0);						// parm2=1: Q=85;

		//PRINT_L1("    L1_UpLoadGOSD: Exit\n");
		return L1K_SUCCESS;
}

//-----------------------------------------------------------------------------
//L1_UpLoadFOSD
//-----------------------------------------------------------------------------
/*++

Routine Description:
        Load font-based OSD from ROM to SDRAM

Arguments:
		RomAddr		- 	ROM starting address
		FOSDAddr	-	Graphic OSD location in SDRAM
		nByte		-   number of bytes to be uploaded
Return Value:
		0x00	- success
		others	- error
--*/

UCHAR L1_UpLoadFOSD(ULONG NANDAddr, ULONG nByte) USING_0
{
        ULONG charFontBufAddr = K_SDRAM_CharFontBufAddr;

	//PRINT_L1("    L1_UpLoadFOSD: Enter\n");

        // read font OSD from NAND flash (address: NANDAddr) to DRAM address "charFontBufAddr"
        L1_NANDtoDRAM(charFontBufAddr, NANDAddr, nByte);

	//PRINT_L1("    L1_UpLoadFOSD: Exit\n");

	return L1K_SUCCESS;
}

//-----------------------------------------------------------------------------
//L1_UpLoadBadPxlCoor
//-----------------------------------------------------------------------------
/*++

Routine Description:
        Load bad pixel coordinates to SDRAM

Arguments:
		RomAddr		- 	ROM starting address
		GOSDAddr	-	Graphic OSD location in SDRAM
		nByte		-   number of bytes to be uploaded
		Hsize		-   OSD picture horizontal size
		Vsize		-   OSD picture vertical size
		TempAddr	-   free spcae in SDRAM for decompression
Return Value:
		0x00	- success
		others	- error
--*/
UCHAR L1_UpLoadBadPxlCoor(USHORT RomAddr) USING_0
{
		USHORT length;
		USHORT i;
		UCHAR cmp;


		//PRINT_L1("    L1_UpLoadBadPxlCoor: Enter\n");
		//PRINT_L1("    L1_UpLoadBadPxlCoor: RomAddr=%x\n",RomAddr);

		// the information of how many of bad pixel need to be corrected
		// is stored in the first two bytes
		length = CBYTE[RomAddr]*256 + CBYTE[RomAddr+1];
		//PRINT_L1("    L1_UpLoadBadPxlCoor: length=%d\n",length);

		// no more than 1024 coordinates
		if(length>2048) return L1K_ERROR_PARAMETER;

// note: WritePort(0x00) will be replaced by FillDRAM after ECO
		L2_ResetDMA();

		if(length>1024) {
                        // DMA source: DMAPort(XBYTE[0x2300]), DMA target: SDRAM address "badPixelCoordBufAddr"
                        L2_SetDRAMDMA(K_SDRAM_BadPixelCoordBufAddr);
			L2_DoDMA(0x05, 0x00, 1024, 0x01, 0x00);
			// move the coordinates information to the SDRAM via L2_WriteDMAPort
			for(i=0; i<1024; i++) L2_WriteDMAPort(CBYTE[RomAddr+2+i]);
			do {
				L2_CheckDMACmp(&cmp);
			} while(cmp==0);
                        // DMA source: DMAPort(XBYTE[0x2300]), DMA target: SDRAM address "badPixelCoordBufAddr+512"
                        L2_SetDRAMDMA(K_SDRAM_BadPixelCoordBufAddr+512);
			L2_DoDMA(0x05, 0x00, 1024, 0x01, 0x00);
			// move the coordinates information to the SDRAM via L2_WriteDMAPort
			for(i; i<length; i++) L2_WriteDMAPort(CBYTE[RomAddr+2+i]);
			// fill the unused SDRAM space with data '0x00'
			for(i; i<2048; i++) L2_WriteDMAPort(0x00);
			do {
				L2_CheckDMACmp(&cmp);
			} while(cmp==0);
		}

		else {
                        L2_SetDRAMDMA(K_SDRAM_BadPixelCoordBufAddr);
			L2_DoDMA(0x05, 0x00, 1024, 0x01, 0x00);
			for(i=0; i<length; i++) L2_WriteDMAPort(CBYTE[RomAddr+2+i]);
			for(i; i<1024; i++) L2_WriteDMAPort(0x00);
			do {
				L2_CheckDMACmp(&cmp);
			} while(cmp==0);

                        L2_SetDRAMDMA(K_SDRAM_BadPixelCoordBufAddr+512);
			L2_DoDMA(0x05, 0x00, 1024, 0x01, 0x00);
			for(i; i<2048; i++) L2_WriteDMAPort(0x00);
			do {
				L2_CheckDMACmp(&cmp);
			} while(cmp==0);
		}

		//PRINT_L1("    L1_UpLoadBadPxlCoor: Exit\n");
		return L1K_SUCCESS;
}


void L1_TestOSD(USHORT L1_ID) USING_0
 {
 //patch4.5@richie@no use mark begin
/*

 UCHAR i;

   for(i=0;i<25;i++)  L2_SetFOSDIndex(1, i, 0X000);

    switch(L1_ID)
	 {
	  case 0X0100 : //preview (zoom)
  		           L2_SetFOSDIndex(1, 2, 0X06F);
		           L2_SetFOSDIndex(1, 3, 0X071);
		           L2_SetFOSDIndex(1, 4, 0X064);
		           L2_SetFOSDIndex(1, 5, 0X075);
		           L2_SetFOSDIndex(1, 6, 0X068);
		           L2_SetFOSDIndex(1, 7, 0X064);
                   L2_SetFOSDIndex(1, 8, 0X076);
	              if(G_PVZFactor==20)
				   {
					L2_SetFOSDIndex(1, 11, 0X079);
					L2_SetFOSDIndex(1, 12, 0X06E);
                    L2_SetFOSDIndex(1, 13, 0X06E);
					L2_SetFOSDIndex(1, 14, 0X06C);
				   }
 	  break;
      case 0X0101 : //DSC (zoom)
  		           L2_SetFOSDIndex(1, 2, 0X063);
		           L2_SetFOSDIndex(1, 3, 0X072);
		           L2_SetFOSDIndex(1, 4, 0X062);
	              if(G_PVZFactor==20)
				   {
					L2_SetFOSDIndex(1, 11, 0X079);
					L2_SetFOSDIndex(1, 12, 0X06E);
                    L2_SetFOSDIndex(1, 13, 0X06E);
					L2_SetFOSDIndex(1, 14, 0X06C);
				   }
 	  break;
      case 0X0102 : //VideoClip (zoom)
  		           L2_SetFOSDIndex(1, 2, 0X075);
		           L2_SetFOSDIndex(1, 3, 0X068);
		           L2_SetFOSDIndex(1, 4, 0X063);
				   L2_SetFOSDIndex(1, 5, 0X064);
				   L2_SetFOSDIndex(1, 6, 0X06E);
		           L2_SetFOSDIndex(1, 7, 0X062);
		           L2_SetFOSDIndex(1, 8, 0X06B);
				   L2_SetFOSDIndex(1, 9, 0X068);
				   L2_SetFOSDIndex(1,10, 0X06F);
	              if(G_PVZFactor==20)
				   {
					L2_SetFOSDIndex(1, 12, 0X079);
					L2_SetFOSDIndex(1, 13, 0X06E);
                    L2_SetFOSDIndex(1, 14, 0X06E);
					L2_SetFOSDIndex(1, 15, 0X06C);

⌨️ 快捷键说明

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