?? vfd_ctrl.h
字號(hào):
/*****************************************************************************
vfd_ctrl.h - This file is for VFD controller, All varibles and functions
are HW relative.
1. PANEL_Initial() : Initial VFD controller
2. PANEL_KeyScan() : Panel KeyScan function, include SW Key
3. _Hardware_CTRL(): Transfer dispalyram.
4. _LightVFD_LED() : Light VFD Led.
5. _OutByteVFD() : Write one BYTE to VFD controller.
6. _InByteVFD() : Read one BYTE key data from VFD controller
-------------------------------------------------------------
Version 2.00
-------------------------------------------------------------
Copyright (c) 2000, Cheertek Corp. All rights reserved.
******************************************************************************/
BYTE __icVFDnow=0;
#ifndef NO_PANEL
#include "key.h"
#include "tft.h"
// ************************ For EVAL_P2 ************************
/*
#define GPIO_FPCS GPIO_GP0
#define GPIO_FPSCK GPIO_GP1
#define GPIO_FPSDA GPIO_GP2
#define GPIO_RED_LED GPIO_GP3
#define GPIO_GREEN_LED GPIO_GP3
#define GPIO_FPCS_HI (GPIO_FPCS | GPIO_PH)
#define GPIO_FPCS_LO (GPIO_FPCS | GPIO_PL)
#define GPIO_FPSCK_HI (GPIO_FPSCK | GPIO_PH)
#define GPIO_FPSCK_LO (GPIO_FPSCK | GPIO_PL)
#define GPIO_FPSDA_HI (GPIO_FPSDA | GPIO_PH)
#define GPIO_FPSDA_LO (GPIO_FPSDA | GPIO_PL)
#define GPIO_RED_LED_HI (GPIO_RED_LED | GPIO_PH)
#define GPIO_RED_LED_LO (GPIO_RED_LED | GPIO_PL)
#define GPIO_GREEN_LED_HI (GPIO_GREEN_LED | GPIO_PH)
#define GPIO_GREEN_LED_LO (GPIO_GREEN_LED | GPIO_PL)
#define GPIO_LED_OUTPUT (0x0001<<GPIO_RED_LED)
#ifdef EMULATOR_DOS
#define _VFD_CS_HI(void) {HAL_WriteGPIO(GPIO_FPCS_HI);}
#define _VFD_CS_LO(void) {HAL_WriteGPIO(GPIO_FPCS_LO);}
#define _VFD_SCK_HI(void) {HAL_WriteGPIO(GPIO_FPSCK_HI);}
#define _VFD_SCK_LO(void) {HAL_WriteGPIO(GPIO_FPSCK_LO);}
#define _VFD_SDA_HI(void) {HAL_WriteGPIO(GPIO_FPSDA_HI);}
#define _VFD_SDA_LO(void) {HAL_WriteGPIO(GPIO_FPSDA_LO);}
#define _VFD_SDA_READ(void) (0)
#else
#define _VFD_CS_HI(void) {HAL_WriteGPIO(GPIO_FPCS_HI);}
#define _VFD_CS_LO(void) {HAL_WriteGPIO(GPIO_FPCS_LO);}
#define _VFD_SCK_HI(void) {HAL_WriteGPIO(GPIO_FPSCK_HI);}
#define _VFD_SCK_LO(void) {HAL_WriteGPIO(GPIO_FPSCK_LO);}
#define _VFD_SDA_HI(void) {HAL_WriteGPIO(GPIO_FPSDA_HI);}
#define _VFD_SDA_LO(void) {HAL_WriteGPIO(GPIO_FPSDA_LO);}
#define _VFD_SDA_READ(void) (HAL_ReadGPIO(GPIO_FPSDA)?1:0)
#endif
*/
// ***************** // for fuss dv9970&9990 ********************************************
#define PIO_P4_0_LINE 0x01
#define PIO_P4_1_LINE 0x02
#define PIO_P4_2_LINE 0x04
#define PIO_P4_3_LINE 0x08
#ifdef TFT_CONTROL
#define TFT_KEYP55 0x20
#define TFT_KEYP56 0x40
#define TFT_KEYP57 0x80
#endif
//#define KEYLINETHREE 0X40
#define GPIO_GP0_LINE GPIO_GP0
#define GPIO_GP1_LINE GPIO_GP1
#define GPIO_GP2_LINE GPIO_GP2
#define GPIO_GP3_LINE GPIO_GP3
//#define GPIO_GP7_LINE GPIO_GP7
//#define GPIO_GP7_HI (GPIO_GP7_LINE | GPIO_PH)
//#define GPIO_GP7_LO (GPIO_GP7_LINE | GPIO_PL)
// ************************ For EVAL_P5 ************************
#define GPIO_FPCS GPIO_GP6
#define GPIO_RED_LED GPIO_GP3
#define GPIO_GREEN_LED GPIO_GP2
#define GPIO_FPCS_HI (GPIO_FPCS | GPIO_PH)
#define GPIO_FPCS_LO (GPIO_FPCS | GPIO_PL)
#define GPIO_RED_LED_HI (GPIO_RED_LED | GPIO_PH)
#define GPIO_RED_LED_LO (GPIO_RED_LED | GPIO_PL)
#define GPIO_GREEN_LED_HI (GPIO_GREEN_LED | GPIO_PH)
#define GPIO_GREEN_LED_LO (GPIO_GREEN_LED | GPIO_PL)
#define GPIO_LED_OUTPUT (0x0001<<GPIO_RED_LED)
#ifdef EMULATOR_DOS
//#define _VFD_CS_HI(void) {W99AV_OutIndex(0x700000A6); W99AV_OutData(0x00000000);}
//#define _VFD_CS_LO(void) {W99AV_OutIndex(0x700000A6); W99AV_OutData(0x00000008);}
#define _VFD_CS_HI(void) {EPP_WritePort(PORT_P3,3,1);}
#define _VFD_CS_LO(void) {EPP_WritePort(PORT_P3,3,0);}
#define _VFD_SCK_HI(void) {EPP_WritePort(PORT_P3,4,1);}
#define _VFD_SCK_LO(void) {EPP_WritePort(PORT_P3,4,0);}
#define _VFD_SDA_HI(void) {EPP_WritePort(PORT_P3,5,1);}
#define _VFD_SDA_LO(void) {EPP_WritePort(PORT_P3,5,0);}
#define _VFD_SDA_READ(void) (0)
#else
//#define _VFD_CS_HI(void) {P4 |= 0x08;}
//#define _VFD_CS_LO(void) {P4 &= ~0x08;}
#define _VFD_CS_HI(void) {HAL_WriteGPIO(GPIO_FPCS_HI);}
#define _VFD_CS_LO(void) {HAL_WriteGPIO(GPIO_FPCS_LO);}
#define _VFD_SCK_HI(void) {__sbI2Csclk=1;}
#define _VFD_SCK_LO(void) {__sbI2Csclk=0;}
#define _VFD_SDA_HI(void) {__sbI2Csdat=1;}
#define _VFD_SDA_LO(void) {__sbI2Csdat=0;}
#define _VFD_SDA_READ(void) (__sbI2Csdat?1:0)
#endif
// *************************************************************
extern BYTE _bDisplayRam[VFD_GRID_ARRAY];
#endif
#pragma NOAREGS
#pragma DISABLE
void _OutByteVFD(BYTE bByte)
{
#ifndef NO_PANEL
for(_bPanelTemp1=0;_bPanelTemp1<8;_bPanelTemp1++)
{
_VFD_SCK_LO();
if(bByte & 0x01)
{
_VFD_SDA_HI();
}
else
{
_VFD_SDA_LO();
}
_VFD_SCK_HI();
bByte>>=1;
}
#endif
}
#pragma NOAREGS
void _Hardware_CTRL(void)
{
#ifndef NO_PANEL
if(__icVFDnow==0x01)
return;
// __icVFDnow=0x01;
_VFD_CS_LO();
_OutByteVFD(SETCOMMAND_WRITEDISPLAY); // Command 2
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(SET_ADDRESS); // Command 3
for(_bPanelTemp2=0;_bPanelTemp2<VFD_GRID_ARRAY;_bPanelTemp2++)
_OutByteVFD(_bDisplayRam[_bPanelTemp2]);
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(VFD_DISP_MODE); // Command 1
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(VFD_CTRL_MODE); // Command 4
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
__icVFDnow=0x00;
#endif
}
void PANEL_Initial(void)
{
#ifndef NO_PANEL
_VFD_CS_HI();
_bLettArray = aMessageLoading;
for(_bPanelTemp1=0;_bPanelTemp1<VFD_GRID_ARRAY;_bPanelTemp1++)
_bDisplayRam[_bPanelTemp1]=0;
for(_bPanelTemp1=0;_bPanelTemp1<VFD_LETTNUM;_bPanelTemp1++)
_bLettTimeMessage[_bPanelTemp1]=_bLettArray[_bPanelTemp1];
#ifndef POWERON_STANDBY
_LETT_To_DisplayRam();
#endif
__icVFDnow=0x01;
_VFD_CS_LO();
_OutByteVFD(0x87); // Command 4
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(SETCOMMAND_WRITEDISPLAY); // Command 2
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(SET_ADDRESS); // Command 3
for(_bPanelTemp2=0;_bPanelTemp2<VFD_GRID_ARRAY;_bPanelTemp2++)
_OutByteVFD(_bDisplayRam[_bPanelTemp2]);
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(0x02); // Command 1
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(0x87); // Command 4
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(0x03); // Command 1
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
_VFD_CS_LO();
_OutByteVFD(0x8f); // Command 4
_VFD_CS_HI();
for(_bPanelTemp1=0;_bPanelTemp1<4;_bPanelTemp1++){}
__icVFDnow=0x00;
#ifndef POWERON_STANDBY
HAL_WriteGPIO(GPIO_GREEN_LED_HI);
HAL_WriteGPIO(GPIO_RED_LED_LO);
#endif
#endif
}
#pragma NOAREGS
#pragma DISABLE
BYTE PANEL_KeyScan(void)
{
//#ifndef NO_PANEL
#ifdef ENABLE_PANEL_KEYSCAN
static BYTE _bPANEL_Count;
// FOR FUSS DV9970&9990
#ifdef SUPPORT_AVIN
if((__bTftAvSwitchFlag==1)&&((__dwCountSystem-__dwTftAvSwitchTime)>COUNT_2_SEC))
{
__bTftAvSwitchFlag=0;
__dwTftAvSwitchTime=0;
TFT_HW_Switch_ON_OFF(TRUE);
}
if(__bAvInStatus==DVD_OUTPUT_STATUS)
{
if((!__bTtfKeyPowerFlag)&&(__btPowerDown)&&__bAvINPowerKeyEnable)
{
return KEY_POWER;
}
}
else
{
if((!__btPowerDown)&&__bAvINPowerKeyEnable)
{
return KEY_POWER;
}
}
#endif
if(__bTftLowBatt)
{
return KEY_NO_KEY;
}
HAL_WriteGPIO(0x80 | GPIO_GP0_LINE);
HAL_WriteGPIO(0x80 | GPIO_GP1_LINE);
HAL_WriteGPIO(0x80 | GPIO_GP2_LINE);
HAL_WriteGPIO(0x80 | GPIO_GP3_LINE);
// HAL_WriteGPIO(0x80 | GPIO_GP7_LINE);
// P4 |= PIO_P4_2_LINE;
// P4 |= 0x04 ;
//#define PIO_P4_1_LINE 0x01
// #define PIO_P4_2_LINE 0x02
//#define PIO_P4_6_LINE 0x40
//#define PIO_P4_7_LINE 0x80
// HAL_WriteGPIO( GPIO_GP7_HI);
P4 |= PIO_P4_0_LINE;
P4 &= ~0x01 ;
P4 |= PIO_P4_1_LINE;
P4 |= PIO_P4_2_LINE;
P4 |= PIO_P4_3_LINE;
// HAL_WriteGPIO(0x00 |GPIO_GP7_LINE); // PL scan key
// __sbKEYtwo = 1; // PH
// P4 |= 0x40 ; //PH
// __sbKEYthree = 1; // PH
// __sbKEYfour = 1; // PH
if (! HAL_ReadGPIO(0))
return (aScanMap[0]) ;
else if (! HAL_ReadGPIO(1))
return (aScanMap[1]);
else if (! HAL_ReadGPIO(2))
return(aScanMap[2]) ;
else if (! HAL_ReadGPIO(3))
return (aScanMap[3]); //for DV9970&9990
P4 |= PIO_P4_0_LINE;
P4 |= PIO_P4_1_LINE;
P4 &= ~ 0x02 ;
P4 |= PIO_P4_2_LINE;
P4 |= PIO_P4_3_LINE;
// HAL_WriteGPIO(0x80 |GPIO_GP7_LINE); //PH
// __sbKEYtwo = 0; // PL scan key
// P4|= 0x40 ; //Ph
// __sbKEYthree = 1; // PH
// __sbKEYfour = 1; // PH
if (! HAL_ReadGPIO(0))
return (aScanMap[4]) ;
else if (! HAL_ReadGPIO(1))
return (aScanMap[5]);
else if (! HAL_ReadGPIO(2))
return(aScanMap[6]) ;
else if (! HAL_ReadGPIO(3))
return (aScanMap[7]);
P4 |= PIO_P4_0_LINE;
P4 |= PIO_P4_1_LINE;
P4 |= PIO_P4_2_LINE;
P4 &= ~0x04 ;
P4 |= PIO_P4_3_LINE;
// HAL_WriteGPIO(0x80 |GPIO_GP7_LINE); //PH
// __sbKEYtwo = 1; // PH
// P4 &= 0x00 ;
//__sbKEYthree = 0; // PL scan key
// __sbKEYfour = 1; // PH
if (! HAL_ReadGPIO(0))
return (aScanMap[8]) ;
else if (! HAL_ReadGPIO(1))
return (aScanMap[9]);
else if (! HAL_ReadGPIO(2))
return(aScanMap[10]) ;
else if (! HAL_ReadGPIO(3))
return (aScanMap[11]);
P4 |= PIO_P4_0_LINE;
P4 |= PIO_P4_1_LINE;
P4 |= PIO_P4_2_LINE;
P4 |= PIO_P4_3_LINE;
P4 &= ~ 0x08 ;
// HAL_WriteGPIO(0x80 |GPIO_GP7_LINE); //PH
// __sbKEYtwo = 1; // PH
// P4 |= 0x40 ; //PH
// __sbKEYthree = 1; // PH
// __sbKEYfour = 0; // PL SCAN key
if (! HAL_ReadGPIO(0))
return (aScanMap[12]);
else if (! HAL_ReadGPIO(1))
return (aScanMap[13]);
else if (! HAL_ReadGPIO(2))
return (aScanMap[14]);
else if (! HAL_ReadGPIO(3))
return (aScanMap[15]);
#ifdef TFT_CONTROL
//for yashi tft control
// P5 bit map 7 6 5 4 3 2 1 0
P5CON |= (TFT_KEYP55 | TFT_KEYP56 | TFT_KEYP57 ); // output port
P5 |= (TFT_KEYP55 | TFT_KEYP56 | TFT_KEYP57 ); // all pull high
P5CON &= ~TFT_KEYP55 ;
if(!(P5&TFT_KEYP55))
return (aScanMap[20]);//size
P5CON &=~ TFT_KEYP56 ;
if(!(P5&TFT_KEYP56))
return (aScanMap[18]); //up
P5CON &=~ TFT_KEYP57 ;
if(!(P5&TFT_KEYP57))
return (aScanMap[16]); //mode
P5CON |= (TFT_KEYP55 | TFT_KEYP56 ); // output port
P5 |= TFT_KEYP55; // pull high
P5 &= ~TFT_KEYP56; //pull low
P5CON &=~TFT_KEYP55; //read mode
if(!(P5&TFT_KEYP55))
{
P5|=TFT_KEYP56;
P5CON&=~TFT_KEYP56;
if(P5&TFT_KEYP56)
return (aScanMap[17]);//reverse
else
return (aScanMap[20]);//size
}
P5CON |= (TFT_KEYP55 | TFT_KEYP56 ); // output port
P5 |= TFT_KEYP56; //pull hight p5.5&p5.6 again
P5 &= ~TFT_KEYP55;
P5CON &=~TFT_KEYP56;
if(!(P5&TFT_KEYP56))
{
P5|=TFT_KEYP55;
P5CON&=~TFT_KEYP55;
if(P5&TFT_KEYP55)
return (aScanMap[19]);//reverse
else
return (aScanMap[18]);//size
}
#endif
#endif
return KEY_NO_KEY;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -