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

📄 misc.c

📁 很难得的最好的rtd3523系列原厂源码LCD驱动开发
💻 C
📖 第 1 页 / 共 2 页
字号:
            
            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 + -