📄 misc.c
字号:
if(ucROM_A5) { } // clear action
}
}
while(ucROM_A0 & 0x80);
#endif // End of #if(_DEBUG_TOOL == _KINGMICE)
}
#if (1)
#define DEBUG_IDLE 0
#define DEBUG_STOP 0x88
#define DEBUG_LOOP 0x80
#define DEBUG_SCALER_RREAD 0x41
#define DEBUG_SCALER_WRITE 0x21
#define DEBUG_DECODE_READ 0x42
#define DEBUG_DECODE_WRITE 0x22
#define DEBUG_TUNER_READ 0x43
#define DEBUG_TUNER_WRITE 0x23
#define DEBUG_EEPROM_READ 0x44
#define DEBUG_EEPROM_WRITE 0x24
#define DEBUG_TCON_READ 0x45
#define DEBUG_TCON_WRITE 0x25
//----------------------------------------------------
// evan 050512 debug process
//----------------------------------------------------
void CMiscIspack(void)
{
#if (_DEBUG_TOOL == _ISPACK)//(_ISPACK == _ON)
static unsigned char idata ucstatus, ucvalue, ucstop = 0;
static unsigned char idata i, debugbuff[2];
do
{
if(MCU_INTFLG_F03 == 0)
return;
if(MCU_INTFLG_F03 & 0x04) //DDC1 WRITE END
{
MCU_INTFLG_F03 = 0X00;
CEepromSaveEDIDData(_EDID0_ADDRESS, &MCU_DDCRAM_0[0]);
}
if(MCU_INTFLG_F03 & 0x02) //DDC2 WRITE END
{
MCU_INTFLG_F03 = 0X00;
CEepromSaveEDIDData(_EDID1_ADDRESS, &MCU_DDCRAM_1[0]);
}
if(MCU_INTFLG_F03 & 0x20) //SLAVE B MATCH
MCU_INTFLG_F03 = 0x00;
if(MCU_INTFLG_F03 & 0x40) //receive a data
{
ucvalue = MCU_RCTXBBUF_F08;
switch(ucstatus)
{
case DEBUG_IDLE:
i = 0;
if(ucvalue == DEBUG_STOP) // run or stop command
ucstop = 1;
else if(ucvalue == DEBUG_LOOP)
ucstop = 0;
else
ucstatus = ucvalue;
break;
case DEBUG_SCALER_RREAD:
CScalerRead(ucvalue, 1, &debugbuff, _NON_AUTOINC);
MCU_RCTXBBUF_F08 = debugbuff[0];
ucstatus = DEBUG_IDLE;
break;
case DEBUG_SCALER_WRITE:
debugbuff[i] = ucvalue;
if(i == 1)
{
CScalerSetByte(debugbuff[0], debugbuff[1]);
ucstatus = DEBUG_IDLE;
i = 0;
}
else if(i>1)
{
ucstatus = DEBUG_IDLE;
i = 0;
}
else
i++;
break;
case DEBUG_DECODE_READ:
#if(_VIDEO_SUPPORT == _ON)
CI2cRead(_VIDEO_DEVICE, ucvalue, 1, &debugbuff);
#endif
MCU_RCTXBBUF_F08 = debugbuff[0];
ucstatus = DEBUG_IDLE;
break;
case DEBUG_DECODE_WRITE:
debugbuff[i] = ucvalue;
if(i == 1)
{
#if(_VIDEO_SUPPORT == _ON)
CI2cWrite(_VIDEO_DEVICE, debugbuff[0], 1, &debugbuff[1]);
#endif
ucstatus = DEBUG_IDLE;
i = 0;
}
else if(i>1)
{
ucstatus = DEBUG_IDLE;
i = 0;
}
else
i++;
break;
case DEBUG_TUNER_READ:
CI2cRead(0xc2, ucvalue, 1, &debugbuff);
MCU_RCTXBBUF_F08 = debugbuff[0];
ucstatus = DEBUG_IDLE;
break;
case DEBUG_TUNER_WRITE:
debugbuff[i] = ucvalue;
if(i == 1)
{
CI2cWrite(0xc2, debugbuff[0], 1, &debugbuff[1]);
ucstatus = DEBUG_IDLE;
i = 0;
}
else if(i>1)
{
ucstatus = DEBUG_IDLE;
i = 0;
}
else
i++;
break;
case DEBUG_EEPROM_READ: // eeprom read & write only one page
CEepromRead(ucvalue, 1, &debugbuff);
MCU_RCTXBBUF_F08 = debugbuff[0];
ucstatus = DEBUG_IDLE;
break;
case DEBUG_EEPROM_WRITE:
debugbuff[i] = ucvalue;
if(i == 1)
{
CEepromWrite(debugbuff[0], 1, &debugbuff[1]);
ucstatus = DEBUG_IDLE;
i = 0;
}
else if(i>1)
{
ucstatus = DEBUG_IDLE;
i = 0;
}
else
i++;
break;
case DEBUG_TCON_READ:
CScalerSetByte(_TCON_ADDR_PORT_8B, ucvalue);
CScalerRead(_TCON_DATA_PORT_8C, 1, &debugbuff, _NON_AUTOINC);
MCU_RCTXBBUF_F08 = debugbuff[0];
ucstatus = DEBUG_IDLE;
break;
case DEBUG_TCON_WRITE:
debugbuff[i] = ucvalue;
if(i == 1)
{
CScalerSetByte(_TCON_ADDR_PORT_8B, debugbuff[0]);
CScalerSetByte(_TCON_DATA_PORT_8C, debugbuff[1]);
ucstatus = DEBUG_IDLE;
i = 0;
}
else if(i>1)
{
ucstatus = DEBUG_IDLE;
i = 0;
}
else
i++;
break;
default:
ucstatus = DEBUG_IDLE;
break;
}
}
if(MCU_INTFLG_F03 & 0x80) //trig transmit a data
{
MCU_RCTXBBUF_F08 = 0;
}
}while(ucstop);
#endif
}
#else
//--------------------------------------------------
// Description : ISP process
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CMiscIspack(void)
{
#if(_ISPACK == _ON)
BYTE ddcdata2in, ddcdata3in;
BYTE halt = 0;
do
{
CScalerRead(_DDC_STATUS_F8, 1, pData, _NON_AUTOINC);
if((pData[0] & 0x04) != 0) // data latched
{
CScalerRead(_DDC_SUB_IN_F5, 2, pData, _AUTOINC);
CScalerSetByte(_DDC_STATUS_F8, 0x00);
if((pData[0] & 0x80) != 0) // run or halt command
{
halt = pData[1];
}
else if((pData[0] & 0x40) == 0x40) // read command
{
switch(pData[0] & 0x0f)
{
case(0x04) : // read eeprom
{
#if 0//(_VIDEO_TYPE == _VIDEO_5150) //x.hu, for 5150 timing
if (GET_INPUTSOURCE_TYPE()== _SOURCE_VIDEO8) {
CVdcI2cRead(ddcdata2in, pData[1], 1, &pData[13]);
}
else {
CI2cRead(ddcdata2in, pData[1], 1, &pData[13]);
}
#else
CI2cRead(ddcdata2in, pData[1], 1, &pData[13]);
#endif
CScalerSetByte(_DDC_CTRL_F7, 0x0A);
CScalerSetByte(_DDC_DATA_IN_F6, pData[13]);
CScalerSetByte(_DDC_CTRL_F7, 0x08);
}
break;
case(0x01): //read scalar
{
CScalerRead(pData[1], 1, &pData[13], _NON_AUTOINC);
CScalerSetBit(_DDC_CTRL_F7, ~_BIT2, _BIT2); //reset index
CScalerSetBit(_DDC_CTRL_F7, ~_BIT1, _BIT1); //change to MCU write
CScalerSetByte(_DDC_DATA_IN_F6,pData[13]);
CScalerSetBit(_DDC_CTRL_F7, ~_BIT1, 0x00); //change to pc write
CScalerSetBit(_DDC_CTRL_F7, ~_BIT2, _BIT2); //reset index
}
break;
}
}
else
{
switch (pData[0] & 0x0F) //Write command
{
case 0x00:
CScalerSetByte(ddcdata2in, pData[1]);
break;
case 0x01:
case 0x02: // for RTD & I2c Device
ddcdata2in = pData[1];
break;
case 0x06:
case 0x03: //for I2c Device
ddcdata3in = pData[1];
break;
case 0x04 : //for I2c Device
#if 0//(_VIDEO_TYPE == _VIDEO_5150) //x.hu, for 5150 timing
if (GET_INPUTSOURCE_TYPE()== _SOURCE_VIDEO8) {
CVdcI2cWrite(ddcdata2in, pData[1], 1, &ddcdata3in);
}
else {
CI2cWrite(ddcdata2in, pData[1], 1, &ddcdata3in);
}
#else
CI2cWrite(ddcdata2in, pData[1], 1, &ddcdata3in);
#endif
break;
}
}
}
}
while(halt == 1);
#endif
}
#endif
/*
//--------------------------------------------------
// Description : Debug tool process
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CMiscIspDebugProc(void)
{
CMiscIspack();
CMiscKingmice();
}
*/
//version 200D
//--------------------------------------------------
// Description : Debug tool process
// Input Value : None
// Output Value : None
//--------------------------------------------------
void CMiscIspDebugProc(void)
{
CMiscIspack();
CMiscKingmice();
#if(_DEBUG_TOOL == _RS232)
CUartHandler();
#endif
}
//-----------------------------------------------
// evan 050512
// led message
//-----------------------------------------------
void LED_Message(unsigned char msg)
{
#if (_CUSTOM_TYPE == _CUSTOM_HAOZHEN)
// prevent from warining message
msg = msg;
#else
static unsigned char FlashCount;
static bit bledstatus = 0;
switch(msg)
{
case LED_MSG_RED:
bLEDGREEN = _LED_OFF;
bLEDRED = _LED_ON;
break;
case LED_MSG_GREEN:
bLEDGREEN = _LED_ON;
bLEDRED = _LED_OFF;
break;
case LED_MSG_YELLOW:
bLEDGREEN = _LED_ON;
bLEDRED = _LED_ON;
break;
case LED_MSG_BLACK:
bLEDGREEN = _LED_OFF;
bLEDRED = _LED_OFF;
break;
case LED_MSG_FLASH_RED:
if(!FlashCount)
{
bLEDGREEN = _LED_OFF;
if(bledstatus)
bLEDRED = _LED_OFF;
else
bLEDRED = _LED_ON;
FlashCount = 1000/20;
bledstatus = ~bledstatus;
}
else
FlashCount--;
break;
case LED_MSG_FLASH_GREEN:
if(!FlashCount)
{
bLEDRED = _LED_OFF;
if(bledstatus)
bLEDGREEN = _LED_OFF;
else
bLEDGREEN = _LED_ON;
FlashCount = 1000/20;
bledstatus = ~bledstatus;
}
else
FlashCount--;
break;
case LED_MSG_FLASH_YELLOW:
if(!FlashCount)
{
if(bledstatus)
{
bLEDGREEN = _LED_OFF;
bLEDRED = _LED_OFF;
}
else
{
bLEDGREEN = _LED_ON;
bLEDRED = _LED_ON;
}
FlashCount = 1000/20;
bledstatus = ~bledstatus;
}
else
FlashCount--;
break;
default:
break;
}
#endif //end of #if (_CUSTOM_TYPE == _CUSTOM_HAOZHEN)
}
void NullFunction(void) //add by zhang_dc
{
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -