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

📄 joetoevb.c

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

//=============================================================================
//UI_PowerOnOffDetect
//=============================================================================
void UI_PowerOnOffDetect(UCHAR OnOff) USING_0
{
     UCHAR i;

     #if(TURNKEY_OPTION == 1)
	if (OnOff)
	{

	}
	else
	{
		if (G_KeepPressPowerOn)
		{
          		if (PWR_DET == 0)
			{
				DELAY_100ms();

	          		if (PWR_DET == 0)
				{
					G_KeepPressPowerOn = 0;
				}
			}
		}

		if (G_KeepPressPowerOn == 0)
		{
			if (PWR_DET == 1)
			{
				for (i = 0; i < 5; i++)
				{
					DELAY_100ms();
				}

				if (PWR_DET == 1)
				{
						UI_FlashLight_Power(0);
					UI_ShowGoodBye();

					UI_Save_NAND_UiParameters();

					UI_Buzzer();
					DELAY_100ms();
					UI_Buzzer();

					L2_TurnOnOffDisplay(1);
					DELAY_1s();
					L2_TurnOnOffDisplay(0);
						L2_CtrlScreen(1);//wendy@2004/9/8
	UI_ClearFOSD(25, 8, 0x08);
					while (PWR_DET == 1);

					L2_SetGPIOBit(14,0);     //Power off

					while(1);
				}
			}
		}
	}
     #else
     //Joe@2003.2.25 14:56 add begin
     L2_ConfigGPIOBit(14,1);
     L2_ConfigGPIOBit(2,0);
     //Joe@2003.2.25 14:56 add end

     if (OnOff)
     {
          if ((XBYTE[0x2040] & 0x04) > 0)
          {
               DELAY_1s();

               if ((XBYTE[0x2040] & 0x04) > 0)
               {
                    L2_SetGPIOBit(14,1);     //Go on the following program

		    G_KeepPressPowerOn = 1;
               }
          }
     }
     else
     {
	  if (G_KeepPressPowerOn)
	  {
          	if ((XBYTE[0x2040] & 0x04) == 0)
		{
			DELAY_100ms();

	          	if ((XBYTE[0x2040] & 0x04) == 0)
			{
				G_KeepPressPowerOn = 0;
			}
		}
	  }

	  if (G_KeepPressPowerOn == 0)
	  {
		if ((XBYTE[0x2040] & 0x04) > 0)
		{
          	     for (i = 0; i < 5; i++)
               	     {
			  DELAY_100ms();
	             }

		     if ((XBYTE[0x2040] & 0x04) > 0)
		     {
          	          UI_ShowGoodBye();
			  UI_Save_NAND_UiParameters();

	                  UI_Buzzer();
			  DELAY_100ms();
			  DELAY_100ms();
			  UI_Buzzer();

			  L2_TurnOnOffDisplay(1);
			  DELAY_1s();

	                  while ((XBYTE[0x2040] & 0x04) > 0);
			  //DbgPrint("L2_TurnOnOffDisplay2=%bu\n",2);
	                  L2_TurnOnOffDisplay(0);
			  	L2_CtrlScreen(1);//wendy@2004/9/8
	UI_ClearFOSD(25, 8, 0x08);
	                  L2_SetGPIOBit(14,0);     //Power off

	                  while(1);
     	             }
                }
	  }
     }
     #endif
}
//*/
//Davis:patch2.0 close end=======================================================

//=============================================================================
//UI_LowPowerDetect
//=============================================================================
void UI_LowPowerDetect(void) USING_0
{
     USHORT status;
     UCHAR FOSD_H_num, FOSD_V_num;

if (!DeletLowBattEN)
	return;


     UI_GetFOSDSize(&FOSD_H_num, &FOSD_V_num);
#if (K_BATT_SEG_TOTAL == 1)
     if ((G_LowPowerCount == 0) && (G_BatteryStatus == K_BATTERY_STATUS_EMPTY))
     {
	G_BatteryStatus = K_BATTERY_STATUS_HIGH;

	status = G_UIStatus & 0xff00;

	if (status == K_UISTATUS_DSC_PLAY)
     	{


		if   ( G_StayInMenu ==0)
		UI_PlaybackStatusOSD();
	}
	else
	{
		if  ( G_StayInMenu ==0)
		UI_PreviewStatusOSD();
	}

        UI_Buzzer();
     }

     if ((G_LowPowerCount >= 5) && (G_BatteryStatus == K_BATTERY_STATUS_HIGH))	//2 sec
     {
	G_BatteryStatus = K_BATTERY_STATUS_EMPTY;

	status = G_UIStatus & 0xff00;
	UI_FlashLight_Power(0);
	G_FlashCharging = 0;
	G_FlashChargeFlag=0;//wendy@2004/9/8
	G_FlashChargeCount=0;//wendy@2004/9/8
	G_FlashChargingCount = 0;
	UI_BusyLed(0);
	//wendy@2004/9/9
	L2_SetGPIOBit(14,1);	//POWER_CTRL
	L2_TurnOnOffDisplay (1);  //debug
						//wendy@2004/9/9
	G_FlashChargeFlag=0;//wendy@2004/9/8
	G_FlashStatus = K_FlashLightOff;
	UI_BusyLed(0);//wendy@2004/9/9
	L2_SetFOSDIndex(0,FOSD_H_num-9,G_FlashStatus*2 + 0x12);
	L2_SetFOSDAttr(0,FOSD_H_num-9, UI_MENU_DEHIGHLIGHT_COLOR);
	L2_SetFOSDIndex(0,FOSD_H_num-8,G_FlashStatus*2 + 0x13);
	L2_SetFOSDAttr(0,FOSD_H_num-8, UI_MENU_DEHIGHLIGHT_COLOR);
	if (status == K_UISTATUS_DSC_PLAY)
     	{
		if   ( G_StayInMenu ==0)
		UI_PlaybackStatusOSD();
	}
	else
	{
		if  ( G_StayInMenu ==0)
		UI_PreviewStatusOSD();
	}

        UI_Buzzer();
     }

     if ((G_LowPowerCount >= 8) && (G_BatteryStatus == K_BATTERY_STATUS_EMPTY) && (G_FlashCharging == 0))	//Power off after low power signal is kept detected for 30 sec
     	{
	UI_Save_NAND_UiParameters();
	UI_ShowLowBattery();

	L2_TurnOnOffDisplay (1);  //debug
//	L2_SetGPIOBit(15,1);  //wendy@2004/9/8//TFT power
	UI_FlashLight_Power(0);

	UI_Buzzer();
	DELAY_100ms();
	UI_Buzzer();
	DELAY_100ms();
	DELAY_100ms();
	UI_Buzzer();
	DELAY_100ms();
	DELAY_100ms();
	UI_ClearFOSD(25,8,0x00);

	UI_ShowGoodBye();
	DELAY_100ms();
	DELAY_1s();
	UI_Buzzer();
	DELAY_100ms();
	DELAY_100ms();
	L2_ConfigGPIOBit(14,1);
	L2_SetGPIOBit(16,0);  //wendy@2004/9/8//TFT power	//add for debug
	L2_TurnOnOffDisplay (0);  //debug
	L2_CtrlScreen(1);//wendy@2004/9/8
	UI_ClearFOSD(25, 8, 0x08);
	
	L2_SetGPIOBit(14,0);     //Power off
	  UI_CardPowerOnOff(0);//add for debug
	 L2_Suspend_UI(0);
	 G_AutoPowerOffCount=0;
	 L2_Resume_UI();
	 //wendy@2004/9/8

     }
#endif

#if (K_BATT_SEG_TOTAL == 2)
     if ((G_MidPowerCount == 0) && (G_BatteryStatus == K_BATTERY_STATUS_LOW)){
		G_BatteryStatus = K_BATTERY_STATUS_HIGH;
		status = G_UIStatus & 0xff00;
		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}
        	UI_Buzzer();
     }
     if ((G_MidPowerCount >= 5) && (G_BatteryStatus == K_BATTERY_STATUS_HIGH)) //2 sec
     {
		G_BatteryStatus = K_BATTERY_STATUS_LOW;

		status = G_UIStatus & 0xff00;
		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}
	       UI_Buzzer();
     }

     if ((G_LowPowerCount == 0) && (G_BatteryStatus == K_BATTERY_STATUS_EMPTY)){
		G_BatteryStatus = K_BATTERY_STATUS_LOW;
		status = G_UIStatus & 0xff00;
		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}
	       UI_Buzzer();
     }

     if ((G_LowPowerCount >= 5) && (G_BatteryStatus == K_BATTERY_STATUS_LOW))	//2 sec
     {
	G_BatteryStatus = K_BATTERY_STATUS_EMPTY;

	status = G_UIStatus & 0xff00;

		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}

        UI_Buzzer();
     }

     if ((G_LowPowerCount >= 6) && (G_BatteryStatus == K_BATTERY_STATUS_EMPTY) && (G_FlashCharging == 0))	//Power off after low power signal is kept detected for 30 sec
     {
		UI_Save_NAND_UiParameters();
		UI_ShowLowBattery();
		L2_TurnOnOffDisplay(1);

		UI_Buzzer();
		DELAY_100ms();
		DELAY_100ms();
		UI_Buzzer();
		DELAY_100ms();
		DELAY_100ms();
		UI_Buzzer();

		DELAY_1s();
		UI_ClearFOSD(25,8,0x00);

		UI_ShowGoodBye();

		DELAY_1s();
		UI_Buzzer();
		DELAY_100ms();
	L2_SetGPIOBit(6,0);  //wendy@2004/9/8//TFT power	//add for debug
	DELAY_10ms();
	//L2_ConfigGPIOBit(14,1);
		DELAY_10ms();
	L2_SetGPIOBit(15,0);  //wendy@2004/9/8//TFT power	//add for debug
	DELAY_10ms();
	L2_SetGPIOBit(16,0);  //wendy@2004/9/8//TFT power	//add for debug

	L2_TurnOnOffDisplay (0);  //debug
		L2_CtrlScreen(1);//wendy@2004/9/8
	UI_ClearFOSD(25, 8, 0x08);
	L2_SetGPIOBit(14,0);     //Power off
     }
#endif

#if (K_BATT_SEG_TOTAL == 3)
     if ((G_HighPowerCount == 0) && (G_BatteryStatus == K_BATTERY_STATUS_MID))
     {
	G_BatteryStatus = K_BATTERY_STATUS_HIGH;

	status = G_UIStatus & 0xff00;
		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}

        UI_Buzzer();
     }

     if ((G_HighPowerCount >= 5) && (G_BatteryStatus == K_BATTERY_STATUS_HIGH)) //2 sec
     {
	G_BatteryStatus = K_BATTERY_STATUS_MID;

	status = G_UIStatus & 0xff00;

		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}

        UI_Buzzer();
     }

     if ((G_MidPowerCount == 0) && (G_BatteryStatus == K_BATTERY_STATUS_LOW))
     {
	G_BatteryStatus = K_BATTERY_STATUS_MID;

	status = G_UIStatus & 0xff00;

		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}

        UI_Buzzer();
     }

     if ((G_MidPowerCount >= 5) && (G_BatteryStatus == K_BATTERY_STATUS_MID)) //2 sec
     {
	G_BatteryStatus = K_BATTERY_STATUS_LOW;

	status = G_UIStatus & 0xff00;

		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}

        UI_Buzzer();
     }

     if ((G_LowPowerCount == 0) && (G_BatteryStatus == K_BATTERY_STATUS_EMPTY))
     {
	G_BatteryStatus = K_BATTERY_STATUS_LOW;

	status = G_UIStatus & 0xff00;

		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}

        UI_Buzzer();
     }

     if ((G_LowPowerCount >= 5) && (G_BatteryStatus == K_BATTERY_STATUS_LOW))	//2 sec
     {
	G_BatteryStatus = K_BATTERY_STATUS_EMPTY;

	status = G_UIStatus & 0xff00;
		if (status == K_UISTATUS_DSC_PREVIEW)
	         	{
			if  ( G_StayInMenu ==0)
			UI_PreviewStatusOSD();
			}
		else
			 {
			if   ( G_StayInMenu ==0)
			UI_PlaybackStatusOSD();
			}

        UI_Buzzer();
     }

     if ((G_LowPowerCount >= 6) && (G_BatteryStatus == K_BATTERY_STATUS_EMPTY) && (G_FlashCharging == 0))	//Power off after low power signal is kept detected for 30 sec
     {
	UI_Save_NAND_UiParameters();
	UI_ShowLowBattery();
	L2_TurnOnOffDisplay(1);

	UI_Buzzer();
	DELAY_100ms();
	DELAY_100ms();
	UI_Buzzer();
	DELAY_100ms();
	DELAY_100ms();
	UI_Buzzer();

⌨️ 快捷键说明

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