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

📄 ui.c

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

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

Module Name:

        ui.c

Abstract:

        Module related to user interface

Environment:

        Keil C51 Compiler

Revision History:

        08/28/2001      Anonymous       created

--*/

//=============================================================================
//Header file
//=============================================================================
#include "general.h"
#include "ui.h"

#include "main.h" //yichang
#include "uiflow.h"

//ada@0415 test ui
#include "timer.h"

//Joe@2003.3.4 20:36 add begin
#include "JoeToEvb.h"
#include "string.h"
//Joe@2003.3.4 20:36 add end
//=============================================================================
//Symbol
//=============================================================================

//-----------------------------------------------------------------------------
//Constant
//-----------------------------------------------------------------------------
#if (SIMULATE) // WWWW0409
sbit Key_Column1;
sbit Key_Column2;
#else
sbit Key_Column1 = P3^4;
sbit Key_Column2 = P3^5;
//Joe@2003.3.5 11:12 add begin
sbit Key_Column3 = P3^3;
//Joe@2003.3.5 11:12 add end
#endif

//-----------------------------------------------------------------------------
//Variable
//-----------------------------------------------------------------------------
xdata UCHAR pressing_key;

//ada@0415 test ui
xdata UCHAR old_key;
xdata UCHAR key;
xdata UCHAR old_Audeokey;
//Joe@2003.2.28 10:32 mask begin
/*
xdata UCHAR mode_change;
xdata UCHAR keymode1;
xdata UCHAR old_keymode1;
xdata UCHAR keymode2;
xdata UCHAR old_keymode2;
xdata UCHAR keymode3;
xdata UCHAR old_keymode3;
xdata UCHAR keymode4;
xdata UCHAR old_keymode4;
*/
//Joe@2003.2.28 10:32 mask end

//Joe@2003.2.25 10:10 add begin
extern xdata UCHAR AEtype;//patch4.5@jhyu@50HzTable
extern xdata UCHAR G_KeepPushKeyCount;
//Joe@2003.2.25 10:10 add end
//=============================================================================
//Program
//=============================================================================
//=============================================================================
//InitialGPIO
//=============================================================================
void UI_InitialGPIO(void) USING_0
{
	#if(TURNKEY_OPTION == 1)
	//L2_SetGPIOBit(8,0);	//ROM_A16
	//L2_SetGPIOBit(9,0);	//ROM_A17
	//L2_SetGPIOBit(10,0);	//ROM_A18
	L2_SetGPIOBit(11,0);	//USB_RDY
	L2_SetGPIOBit(12,0);	//TRIG
	//L2_SetGPIOBit(13,0);	//ONE_EXTAL
	L2_SetGPIOBit(14,0);	//POWER_CTRL
	L2_SetGPIOBit(15,0);	//LCD_BACKLIGHT
	//DbgPrint("L2_TurnOnOffDisplay17=%bu\n",17);
	L2_SetGPIOBit(16,1);	//LCD_POWER		//Davis:patch3.01 open 
	L2_SetGPIOBit(40,1);	//LCD_CTRL	//Davis:patch5.0.0.3_2005/Jun/30
	L2_SetGPIOBit(17,0);	//BUZZER
	L2_SetGPIOBit(18,0);	//USB_DET
	L2_SetGPIOBit(29,0);
	L2_SetGPIOBit(19,1);	//SCAN_A
	L2_SetGPIOBit(20,1);	//SCAN_B
	L2_SetGPIOBit(21,1);	//SCAN_C
	L2_SetGPIOBit(22,0);	//DET_A
	L2_SetGPIOBit(23,0);	//DET_B
	L2_SetGPIOBit(24,0);	//DET_C
	L2_SetGPIOBit(35,0);	//SW_ROM5	//Davis:patch5.0.0.5_2005/Jul/19
	L2_SetGPIOBit(25,0);	//SW_ROM4
	L2_SetGPIOBit(26,0);	//SW_ROM3
	L2_SetGPIOBit(27,0);	//SW_ROM2
	L2_SetGPIOBit(28,0);	//SW_ROM1
//Davis:patch3.01 mask	L2_SetGPIOBit(0,0);	//SW_ROM1
	XBYTE[0x2d72] = 0xfe;	//digtv[8,11]
	XBYTE[0x203b] |= 0x20; //gpio29self_led//wendy@2004/8/7
	XBYTE[0x2033] &= 0xdf;//gpio29self_led//wendy@2004/8/7
//	L2_SetGPIOBit(6,1);	//SENSOR_POWER
//	L2_SetGPIOBit(7,0);	//SENSOR_RESET
	XBYTE[0x2c03] &= 0xef;  //power_det//wendy@2004/8/10
//	XBYTE[0x2050] &= 0xfe;  
//	XBYTE[0x2058] &= 0x00; 
	XBYTE[0x2053] &= 0xfe;  
	XBYTE[0x205b] &= 0x00;  

	//L2_ConfigGPIOBit(8,0);	//ROM_A16
	//L2_ConfigGPIOBit(9,0);	//ROM_A17
	//L2_ConfigGPIOBit(10,0);	//ROM_A18
	L2_ConfigGPIOBit(11,1);	//USB_RDY
	L2_ConfigGPIOBit(12,1);	//TRIG
	//L2_ConfigGPIOBit(13,0);	//ONE_EXTAL
	L2_ConfigGPIOBit(14,1);	//POWER_CTRL
	L2_ConfigGPIOBit(15,1);	//LCD_BACKLIGHT
	L2_ConfigGPIOBit(16,1);	//LCD_POWER//Davis:patch3.01	close		//open for debug
	L2_ConfigGPIOBit(17,1);	//BUZZER
	L2_ConfigGPIOBit(18,1);	//USB_DET
	L2_ConfigGPIOBit(19,1);	//SCAN_A
	L2_ConfigGPIOBit(20,1);	//SCAN_B
	L2_ConfigGPIOBit(21,1);	//SCAN_C
	L2_ConfigGPIOBit(22,0);	//DET_A
	L2_ConfigGPIOBit(23,0);	//DET_B
	L2_ConfigGPIOBit(24,0);	//DET_C
	L2_ConfigGPIOBit(35,0);	//SW_ROM5	//Davis:patch5.0.0.5_2005/Jul/19
	L2_ConfigGPIOBit(25,0);	//SW_ROM4
	L2_ConfigGPIOBit(26,0);	//SW_ROM3
	L2_ConfigGPIOBit(27,0);	//SW_ROM2
	L2_ConfigGPIOBit(28,0);	//SW_ROM1
//Davis:pacth3.01 mask	L2_ConfigGPIOBit(0,0);	//TV_DET
	L2_ConfigGPIOBit(29,1);	//SELF_TIMER
	L2_ConfigGPIOBit(40,1);	//LCD_Ctrl	//Davis:patch5.0.0.3_2005/Jun/30
	L2_ConfigGPIOBit(6,1);	//SENSOR_POWER
//	L2_ConfigGPIOBit(7,0);	//SENSOR_RESET
	L2_ConfigGPIOBit(4,1);	  //gpio 4
	L2_ConfigGPIOBit(3,0);	  //gpio 3
	L2_SetGPIOBit(4,0);	//SW_ROM1
	L2_SetGPIOBit(3,0);	//SW_ROM1
	XBYTE[0x2038] &= 0xdf;	//digtv[8,11]
	XBYTE[0x2408] &= 0xcf;	//wendy for low power detect	//Davis:patch5.0.0.3_2005/Jun/30 FMGPIO28 29
	#else
	L2_SetGPIOBit(0,0);	//TV_DET
	L2_SetGPIOBit(1,0);	//USB_DET
	L2_SetGPIOBit(2,0);	//POWER_DET
	L2_SetGPIOBit(3,0);	//CHARGE_EN
	L2_SetGPIOBit(4,0);	//CHARGE_OK
	L2_SetGPIOBit(5,0);	//CHARGE_RDY
	L2_SetGPIOBit(6,1);	//SENSOR_POWER
	L2_SetGPIOBit(7,0);	//SENSOR_RESET
	//L2_SetGPIOBit(8,0);	//ROM_A16
	//L2_SetGPIOBit(9,0);	//ROM_A17
	//L2_SetGPIOBit(10,0);	//ROM_A18
	//L2_SetGPIOBit(11,0);	//ROM_A19
	L2_SetGPIOBit(12,0);	//TRIG
	//L2_SetGPIOBit(13,0);	//ONE_EXTAL
	L2_SetGPIOBit(14,0);	//POWER_CTRL
	L2_SetGPIOBit(15,0);	//CF_POWER
	L2_SetGPIOBit(16,0);	//LCD_POWER
	L2_SetGPIOBit(17,0);	//BUZZER
	L2_SetGPIOBit(18,1);	//RDY/BUSY
	L2_SetGPIOBit(19,0);	//SELF_TIMER
	//L2_SetGPIOBit(20,0);	//OSD_DOWN
	//L2_SetGPIOBit(21,0);	//
	//L2_SetGPIOBit(22,0);	//OSD_UP
	L2_SetGPIOBit(23,1);	//LCD_BRIGHT
	L2_SetGPIOBit(24,0);	//USB_RDY
	L2_SetGPIOBit(25,0);	//SW_ROW1
	L2_SetGPIOBit(26,0);	//SW_ROW2
	L2_SetGPIOBit(27,0);	//SW_ROW3
	L2_SetGPIOBit(28,0);	//SW_ROW4
	L2_SetGPIOBit(29,0);	//SW_MODE1
	L2_SetGPIOBit(30,0);	//SW_MODE2
	//L2_SetGPIOBit(31,0);	//STROBE
	//L2_SetGPIOBit(32,0);	//ACK
	//L2_SetGPIOBit(33,0);	//DATA
	L2_SetGPIOBit(34,0);	//LB1
	L2_SetGPIOBit(35,0);	//LB2
	L2_SetGPIOBit(36,0);	//LB3
	L2_SetGPIOBit(37,0);	//SDRAM_CS
	L2_SetGPIOBit(38,0);	//SW_MODE3
	L2_SetGPIOBit(39,0);	//SW_MODE4
	L2_SetGPIOBit(40,0);	//AUDIO_CTRL
	//L2_SetGPIOBit(41,0);	//

	L2_ConfigGPIOBit(0,0);	//TV_DET
	L2_ConfigGPIOBit(1,0);	//USB_DET
	L2_ConfigGPIOBit(2,0);	//POWER_DET
	L2_ConfigGPIOBit(3,1);	//CHARGE_EN
	L2_ConfigGPIOBit(4,0);	//CHARGE_OK
	L2_ConfigGPIOBit(5,1);	//CHARGE_RDY
	L2_ConfigGPIOBit(6,1);	//SENSOR_POWER
	L2_ConfigGPIOBit(7,0);	//SENSOR_RESET
	//L2_ConfigGPIOBit(8,0);	//ROM_A16
	//L2_ConfigGPIOBit(9,0);	//ROM_A17
	//L2_ConfigGPIOBit(10,0);	//ROM_A18
	//L2_ConfigGPIOBit(11,0);	//ROM_A19
	L2_ConfigGPIOBit(12,1);	//TRIG
	//L2_ConfigGPIOBit(13,0);	//ONE_EXTAL
	L2_ConfigGPIOBit(14,1);	//POWER_CTRL
	L2_ConfigGPIOBit(15,1);	//CF_POWER
	L2_ConfigGPIOBit(16,1);	//LCD_POWER
	L2_ConfigGPIOBit(17,1);	//BUZZER
	L2_ConfigGPIOBit(18,1);	//RDY/BUSY
	L2_ConfigGPIOBit(19,1);	//SELF_TIMER
	//L2_ConfigGPIOBit(20,0);	//OSD_DOWN
	//L2_ConfigGPIOBit(21,0);	//
	//L2_ConfigGPIOBit(22,0);	//OSD_UP
	L2_ConfigGPIOBit(23,1);	//LCD_BRIGHT
	L2_ConfigGPIOBit(24,1);	//USB_RDY
	L2_ConfigGPIOBit(25,0);	//SW_ROW1
	L2_ConfigGPIOBit(26,0);	//SW_ROW2
	L2_ConfigGPIOBit(27,0);	//SW_ROW3
	L2_ConfigGPIOBit(28,0);	//SW_ROW4
	L2_ConfigGPIOBit(29,0);	//SW_MODE1
	L2_ConfigGPIOBit(30,0);	//SW_MODE2
	//L2_ConfigGPIOBit(31,0);	//STROBE
	//L2_ConfigGPIOBit(32,0);	//ACK
	//L2_ConfigGPIOBit(33,0);	//DATA
	L2_ConfigGPIOBit(34,0);	//LB1
	L2_ConfigGPIOBit(35,0);	//LB2
	L2_ConfigGPIOBit(36,0);	//LB3
	L2_ConfigGPIOBit(37,0);	//SDRAM_CS
	L2_ConfigGPIOBit(38,0);	//SW_MODE3
	L2_ConfigGPIOBit(39,0);	//SW_MODE4
	L2_ConfigGPIOBit(40,1);	//AUDIO_CTRL
	//L2_ConfigGPIOBit(41,0);	//
	#endif
}

//=============================================================================
//Y_UI_Initialize
//=============================================================================
void UI_Initialize(void) USING_0
{
     //Joe@2003.2.27 14:13 mask begin
     //UI_InitialGPIO();                       //GPIO initialization
     //Joe@2003.2.27 14:13 mask end

//ada@0415 test ui
     pressing_key = 0x00;

     old_key = 0x00;
     key = 0x00;

     //Joe@2003.2.28 10:32 mask begin
     /*
     mode_change = 1;
     keymode1 = 0;
     old_keymode1 = 0;
     keymode2 = 0;
     old_keymode2 = 0;
     keymode3 = 0;
     old_keymode3 = 0;
     keymode4 = 0;
     old_keymode4 = 0;
     */
     //Joe@2003.2.28 10:32 mask end

     //Joe@2003.2.25 9:57 add begin
     G_AutoPowerOffCount = 0;
     G_StayInMenuCount = 0;
     G_StayInMenu = 0;
     G_KeepPushKeyCount = 0;
     G_FlashChargingCount = 0;
     G_FlashCharging = 0;
     G_LowPowerCount = 0;
     G_MidPowerCount = 0;
     G_HighPowerCount = 0;
     G_DisplayMode = K_DisplayModeOsdOn;
     G_Language = 0;	//English
     AEtype = 0;
     G_BatteryStatus = K_BATTERY_STATUS_HIGH;
     //Joe@2003.2.25 9:57 add end
}

//=============================================================================
//UI_Keypad_Scan
//=============================================================================
void UI_Keypad_Scan(void) USING_0				// @WYEO, 103101
{

     //UCHAR  USB_Status;
     UCHAR mode;

     G_KeyState =  K_UI_BUTTON_NULL; //yichang

     //patch4.2@ada@0527 for Key scan
     //G_bRequestLock  = 0x60;
     //detect if USB is connect....
     //USB_Status = USB_Connect_Detect();
     //USB_Status = 0;

     //Joe@2003.3.5 11:09 add begin
     #if(ROTARY_KEY == 1)
     //Joe@2003.3.5 11:09 add end
     switch(UI_Get_Hardware_Keypad2())
     {
          case K_RotarySwitchMode0:
               mode = (UCHAR)(((G_UIStatusH& UI_Status_Level2_Mask) >> 8) - 1);

               if(mode != K_UI_MODE_DSC_PREVIEW)
               {
                    G_KeyState = K_UI_BUTTON_PREVIEW_SWITCH;
               }

               break;

          case K_RotarySwitchMode1:
               mode = (UCHAR)(((G_UIStatusH& UI_Status_Level2_Mask) >> 8) - 1);

               if(mode != K_UI_MODE_DSC_PLAY)
               {
	       	     G_KeyState = K_UI_BUTTON_PLAY_SWITCH;
               }

               break;

          case K_RotarySwitchMode2:
               mode = (UCHAR)(((G_UIStatusH& UI_Status_Level2_Mask) >> 8) - 1);

               if(mode != K_UI_MODE_DSC_VIDEO)
               {
	       	     G_KeyState = K_UI_BUTTON_VIDEO_SWITCH;
               }

               break;

          case K_RotarySwitchMode3:
	  mode = (UCHAR)(((G_UIStatusH& UI_Status_Level2_Mask) >> 8) - 1);
			  
	  if(mode != K_UI_MODE_USB_PCCAM)
	  {
		G_KeyState = K_UI_BUTTON_PCCAM_SWITCH;
	  }
			  
	  break;
	  
	 case K_RotarySwitchMode4:
	 mode = (UCHAR)(((G_UIStatusH& UI_Status_Level2_Mask) >> 8) - 1);
 
	if(mode != K_UI_MODE_DSC_AUDIO)
	  {
		G_KeyState = K_UI_BUTTON_AUDIO_SWITCH;
	  }						 
               break;

          case K_RotarySwitchPreviousMode:
               break;

          default:  //unknown mode for future use
               break;
     }

     //Joe@2003.3.7 13:21 add begin
     #else
     mode = (UCHAR)(((G_UIStatus & UI_Status_Level2_Mask) >> 8) - 1);
     if (G_IsKeyRelease == 0)
     {
	    if ((mode == K_UI_MODE_USB_PCCAM) || (mode == K_UI_MODE_DSC_PREVIEW))
            {
                    G_KeyState = K_UI_BUTTON_PREVIEW_SWITCH;
            }
            else if((mode == K_UI_MODE_USB_MASS_STORAGE) || (mode == K_UI_MODE_DSC_PLAY))
            {
                    G_KeyState = K_UI_BUTTON_PLAY_SWITCH;
            }
     }
     #endif
     //Joe@2003.3.7 13:21 add end

    UI_Get_Hardware_Keypad1();

     switch(pressing_key)
     {
          case K_LeftKey:
               if (G_IsKeyRelease == 0)
	       {
			G_KeyState = K_UI_BUTTON_LEFT;
			G_IsKeyRelease = 1;
	       }

               break;

          case K_UpKey:
               if (G_IsKeyRelease == 0)
	       {
			G_KeyState = K_UI_BUTTON_UP;
			G_IsKeyRelease = 1;
	       }

               break;

          case K_RightKey:
               if (G_IsKeyRelease == 0)
	       {
			G_KeyState = K_UI_BUTTON_RIGHT;
			G_IsKeyRelease = 1;
	       }

               break;

          case K_DownKey:
               if (G_IsKeyRelease == 0)
	       {
			G_KeyState = K_UI_BUTTON_DOWN;
			G_IsKeyRelease = 1;
	       }

               break;

          case K_MenuKey:
               if (G_IsKeyRelease == 0)
	       {
			G_KeyState = K_UI_BUTTON_MENU;
			G_IsKeyRelease = 1;
	       }

               break;

          case K_SelectKey:
               if (G_IsKeyRelease == 0)
	       {
			G_KeyState = K_UI_BUTTON_SELECT;
			G_IsKeyRelease = 1;
	       }

               break;

          case K_Snap1Key:
               if (G_IsKeyRelease == 0)
	       {
			G_KeyState = K_UI_BUTTON_SNAP1;
		        //G_IsKeyRelease = 1;
	       }

⌨️ 快捷键说明

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