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

📄 s5h1410_ver1.2.c

📁 mstar 776 开发的车载dvd
💻 C
📖 第 1 页 / 共 3 页
字号:
        {
             return TRUE;
        }
    }

    return FALSE;
 }
/****************************************************************************************************
* S5H1410 Alter Mpeg Parallel/Serial Mode
* Conditions:
* Description:  Parallel output TS.(Default)
* Addr: 0xa0
* Value: 0x1001 -> PARALLEL , 0x1101 -> SERIAL

****************************************************************************************************/
BOOLEAN Sec_1410xAlterMpegMode(SamsungMpegMode_t mode)
{
    BOOLEAN result;

    if(mode == MPEG_MODE_PARAL)
	    result = MDrv_IIC_Write2Bytes(IIC_1410x_RegId, 0xA0, 0x1001);
    else
        result = MDrv_IIC_Write2Bytes(IIC_1410x_RegId, 0xA0, 0x1101);

	return result;
}

/**************************************************************************
* S5H1409 Alter Mpeg Normal/Invert Clock
*	Conditions:
*	Description : Inverting output clk.(Default)
*	After this function is called TS timing could be changed.
*	Addr : 0xa1
*	Value: 0x0330
/**************************************************************************/
BOOLEAN Sec_1410xAlterMpegClk(SamsungMpegClk_t clock)
{
    BOOLEAN result;

    if(clock == MPEG_CLK_INVERT)
    	result = MDrv_IIC_Write2Bytes(IIC_1410x_RegId, 0xA1,0x0330);
    else
	    result = MDrv_IIC_Write2Bytes(IIC_1410x_RegId, 0xA1,0x1330);

   	return result;
}

/**************************************************************************
* S5H1410 VSB SNR value(Signal Strength) Check Driver
*	Conditions:
*	Description :
*	This function lets the user's application software read a value
*	that is related to the SNR through the SNR Look Up Table in VSB mode.
*	Addr : 0xf1
*	Value: [9:0]
/**************************************************************************/
static I2C_STATUS_DBL VsbSnrLookUpTable(U16 SnrRead)
{
	I2C_STATUS_DBL SnrLookUP;
	if(SnrRead == 1023 ) SnrLookUP = 77 ;  // Something Wrong
	else if(SnrRead > 923 ) SnrLookUP = 30 ;
	else if(SnrRead > 918 ) SnrLookUP = 29.5 ;
	else if(SnrRead > 915 ) SnrLookUP = 29.0;
	else if(SnrRead > 911 ) SnrLookUP = 28.5 ;
	else if(SnrRead > 906 ) SnrLookUP = 28.0 ;
	else if(SnrRead > 901 ) SnrLookUP = 27.5 ;
	else if(SnrRead > 896 ) SnrLookUP = 27.0 ;
	else if(SnrRead > 891 ) SnrLookUP = 26.5 ;
	else if(SnrRead > 885 ) SnrLookUP = 26.0 ;
	else if(SnrRead > 879 ) SnrLookUP = 25.5 ;
	else if(SnrRead > 873 ) SnrLookUP = 25.0 ;
	else if(SnrRead > 864 ) SnrLookUP = 24.5 ;
	else if(SnrRead > 858 ) SnrLookUP = 24.0 ;
	else if(SnrRead > 850 ) SnrLookUP = 23.5 ;
	else if(SnrRead > 841 ) SnrLookUP = 23.0 ;
	else if(SnrRead > 832 ) SnrLookUP = 22.5 ;
	else if(SnrRead > 823 ) SnrLookUP = 22.0 ;
	else if(SnrRead > 812 ) SnrLookUP = 21.5 ;
	else if(SnrRead > 802 ) SnrLookUP = 21.0 ;
	else if(SnrRead > 788 ) SnrLookUP = 20.5 ;
	else if(SnrRead > 778 ) SnrLookUP = 20.0 ;
	else if(SnrRead > 767 ) SnrLookUP = 19.5 ;
	else if(SnrRead > 753 ) SnrLookUP = 19.0 ;
	else if(SnrRead > 740 ) SnrLookUP = 18.5 ;
	else if(SnrRead > 725 ) SnrLookUP = 18.0 ;
	else if(SnrRead > 707 ) SnrLookUP = 17.5 ;
	else if(SnrRead > 689 ) SnrLookUP = 17.0 ;
	else if(SnrRead > 671 ) SnrLookUP = 16.5 ;
	else if(SnrRead > 656 ) SnrLookUP = 16.0 ;
	else if(SnrRead > 637 ) SnrLookUP = 15.5 ;
	else if(SnrRead > 616 ) SnrLookUP = 15.0 ;
	else if(SnrRead > 542 ) SnrLookUP = 14.5 ;
	else if(SnrRead > 519 ) SnrLookUP = 14.0 ;
	else if(SnrRead > 507 ) SnrLookUP = 13.5 ;
	else if(SnrRead > 497 ) SnrLookUP = 13.0 ;
	else if(SnrRead > 492 ) SnrLookUP = 12.5 ;
	else if(SnrRead > 474 ) SnrLookUP = 12.0 ;
	else if(SnrRead > 300 ) SnrLookUP = 1.11 ;
	else SnrLookUP = 0;
	return SnrLookUP;
}
I2C_STATUS_DBL Sec_1410xVsbSnrResultCheck(void)
{
	U16 value;
	I2C_STATUS_DBL SnrValue;
	value = MDrv_IIC_Read2Bytes(IIC_1410x_RegId,0xf1);
	value = (value & 0x3ff);
	SnrValue = VsbSnrLookUpTable(value);
	return SnrValue;
}

/*********************************************************************************************************
* S5H1410 VSB Packet Error Check Driver
* Conditions:
* Description:
* Error count value after RS decoder
* This function is used to count the packet error.
* Addr: 0xb5
* Value: [15:0]
**********************************************************************************************************/
U16 Sec1410_Unc_Error(void)
{
	return MDrv_IIC_Read2Bytes(IIC_1410x_RegId, 0xab);
}

/*********************************************************************************************************
* S5H1410 QAM SNR value(Signal Strength) Check Driver
* Conditions:
* Description
* This function lets the user's application software read a value that is related to the SNR through
* the SNR Look Up Table in QAM mode.

* Addr : 0xf0
* Value: [7:0]
**********************************************************************************************************/
static I2C_STATUS_DBL Qam64SnrLookUpTable(int SnrRead)
{
	I2C_STATUS_DBL SnrLookUP;
	if(SnrRead<	12	) SnrLookUP =	30	;
	else if(SnrRead <	15	) SnrLookUP =	29	;
	else if(SnrRead <	18	) SnrLookUP =	28	;
	else if(SnrRead <	22	) SnrLookUP =	27	;
	else if(SnrRead <	23	) SnrLookUP =	26.8	;
	else if(SnrRead <	24	) SnrLookUP =	26.6	;
	else if(SnrRead <	25	) SnrLookUP =	26.4	;
	else if(SnrRead <	27	) SnrLookUP =	26.2	;
	else if(SnrRead <	28	) SnrLookUP =	26	;
	else if(SnrRead <	29	) SnrLookUP =	25.8	;
	else if(SnrRead <	30	) SnrLookUP =	25.6	;
	else if(SnrRead <	32	) SnrLookUP =	25.4	;
	else if(SnrRead <	33	) SnrLookUP =	25.2	;
	else if(SnrRead <	34	) SnrLookUP =	25	;
	else if(SnrRead <	35	) SnrLookUP =	24.9	;
	else if(SnrRead <	36	) SnrLookUP =	24.8	;
	else if(SnrRead <	37	) SnrLookUP =	24.7	;
	else if(SnrRead <	38	) SnrLookUP =	24.6	;
	else if(SnrRead <	39	) SnrLookUP =	24.5	;
	else if(SnrRead <	40	) SnrLookUP =	24.4	;
	else if(SnrRead <	41	) SnrLookUP =	24.3	;
	else if(SnrRead <	41	) SnrLookUP =	24.2	;
	else if(SnrRead <	42	) SnrLookUP =	24.1	;
	else if(SnrRead <	43	) SnrLookUP =	24	;
	else if(SnrRead <	44	) SnrLookUP =	23.9	;
	else if(SnrRead <	45	) SnrLookUP =	23.8	;
	else if(SnrRead <	46	) SnrLookUP =	23.7	;
	else if(SnrRead <	47	) SnrLookUP =	23.6	;
	else if(SnrRead <	48	) SnrLookUP =	23.5	;
	else if(SnrRead <	49	) SnrLookUP =	23.4	;
	else if(SnrRead <	50	) SnrLookUP =	23.3	;
	else if(SnrRead <	51	) SnrLookUP =	23.2	;
	else if(SnrRead <	52	) SnrLookUP =	23.1	;
	else if(SnrRead <	53	) SnrLookUP =	23	;
	else if(SnrRead <	55	) SnrLookUP =	22.9	;
	else if(SnrRead <	56	) SnrLookUP =	22.8	;
	else if(SnrRead <	57	) SnrLookUP =	22.7	;
	else if(SnrRead <	58	) SnrLookUP =	22.6	;
	else if(SnrRead <	59	) SnrLookUP =	22.5	;
	else if(SnrRead <	60	) SnrLookUP =	22.4	;
	else if(SnrRead <	62	) SnrLookUP =	22.3	;
	else if(SnrRead <	63	) SnrLookUP =	22.2	;
	else if(SnrRead <	65	) SnrLookUP =	22.1	;
	else if(SnrRead <	66	) SnrLookUP =	22	;
	else if(SnrRead <	68	) SnrLookUP =	21.9	;
	else if(SnrRead <	69	) SnrLookUP =	21.8	;
	else if(SnrRead <	70	) SnrLookUP =	21.7	;
	else if(SnrRead <	72	) SnrLookUP =	21.6	;
	else if(SnrRead <	73	) SnrLookUP =	21.5	;
	else if(SnrRead <	75	) SnrLookUP =	21.4	;
	else if(SnrRead <	76	) SnrLookUP =	21.3	;
	else if(SnrRead <	78	) SnrLookUP =	21.2	;
	else if(SnrRead <	80	) SnrLookUP =	21.1	;
	else if(SnrRead <	81	) SnrLookUP =	21	;
	else if(SnrRead <	83	) SnrLookUP =	20.9	;
	else if(SnrRead <	84	) SnrLookUP =	20.8	;
	else if(SnrRead <	85	) SnrLookUP =	20.7	;
	else if(SnrRead <	87	) SnrLookUP =	20.6	;
	else if(SnrRead <	89	) SnrLookUP =	20.5	;
	else if(SnrRead <	91	) SnrLookUP =	20.4	;
	else if(SnrRead <	93	) SnrLookUP =	20.3	;
	else if(SnrRead <	95	) SnrLookUP =	20.2	;
	else if(SnrRead <	96	) SnrLookUP =	20.1	;
	else if(SnrRead <	104	) SnrLookUP =	20	;
	else SnrLookUP = 0;
	return SnrLookUP;
}

static I2C_STATUS_DBL Qam256SnrLookUpTable(int SnrRead)
{
	I2C_STATUS_DBL SnrLookUP;
	if(SnrRead<	12	) SnrLookUP =	40	;
	else if(SnrRead <	13	) SnrLookUP =	39	;
	else if(SnrRead <	15	) SnrLookUP =	38	;
	else if(SnrRead <	17	) SnrLookUP =	37	;
	else if(SnrRead <	19	) SnrLookUP =	36	;
	else if(SnrRead <	22	) SnrLookUP =	35	;
	else if(SnrRead <	22	) SnrLookUP =	34.8	;
	else if(SnrRead <	23	) SnrLookUP =	34.6	;
	else if(SnrRead <	24	) SnrLookUP =	34.4	;
	else if(SnrRead <	25	) SnrLookUP =	34.2	;
	else if(SnrRead <	26	) SnrLookUP =	34	;
	else if(SnrRead <	27	) SnrLookUP =	33.8	;
	else if(SnrRead <	27	) SnrLookUP =	33.6	;
	else if(SnrRead <	28	) SnrLookUP =	33.4	;
	else if(SnrRead <	29	) SnrLookUP =	33.2	;
	else if(SnrRead <	30	) SnrLookUP =	33	;
	else if(SnrRead <	31	) SnrLookUP =	32.8	;
	else if(SnrRead <	32	) SnrLookUP =	32.6	;
	else if(SnrRead <	33	) SnrLookUP =	32.4	;
	else if(SnrRead <	34	) SnrLookUP =	32.2	;
	else if(SnrRead <	35	) SnrLookUP =	32	;
	else if(SnrRead <	37	) SnrLookUP =	31.8	;
	else if(SnrRead <	39	) SnrLookUP =	31.6	;
	else if(SnrRead <	40	) SnrLookUP =	31.4	;
	else if(SnrRead <	41	) SnrLookUP =	31.2	;
	else if(SnrRead <	42	) SnrLookUP =	31	;
	else if(SnrRead <	43	) SnrLookUP =	30.8	;
	else if(SnrRead <	46	) SnrLookUP =	30.6	;
	else if(SnrRead <	47	) SnrLookUP =	30.4	;
	else if(SnrRead <	49	) SnrLookUP =	30.2	;
	else if(SnrRead <	51	) SnrLookUP =	30	;
	else if(SnrRead <	53	) SnrLookUP =	29.8	;
	else if(SnrRead <	54	) SnrLookUP =	29.7	;
	else if(SnrRead <	55	) SnrLookUP =	29.6	;
	else if(SnrRead <	56	) SnrLookUP =	29.5	;
	else if(SnrRead <	57	) SnrLookUP =	29.4	;
	else if(SnrRead <	59	) SnrLookUP =	29.3	;
	else if(SnrRead <	60	) SnrLookUP =	29.2	;
	else if(SnrRead <	61	) SnrLookUP =	29.1	;
	else if(SnrRead <	63	) SnrLookUP =	29	;
	else if(SnrRead <	64	) SnrLookUP =	28.9	;
	else if(SnrRead <	65	) SnrLookUP =	28.8	;
	else if(SnrRead <	66	) SnrLookUP =	28.7	;
	else if(SnrRead <	68	) SnrLookUP =	28.6	;
	else if(SnrRead <	69	) SnrLookUP =	28.5	;
	else if(SnrRead <	71	) SnrLookUP =	28.4	;
	else if(SnrRead <	72	) SnrLookUP =	28.3	;
	else if(SnrRead <	74	) SnrLookUP =	28.2	;
	else if(SnrRead <	75	) SnrLookUP =	28.1	;
	else if(SnrRead <	76	) SnrLookUP =	28	;
	else if(SnrRead <	77	) SnrLookUP =	27.9	;
	else if(SnrRead <	78	) SnrLookUP =	27.8	;
	else if(SnrRead <	81	) SnrLookUP =	27.7	;
	else if(SnrRead <	83	) SnrLookUP =	27.6	;
	else if(SnrRead <	84	) SnrLookUP =	27.5	;
	else if(SnrRead <	86	) SnrLookUP =	27.4	;
	else if(SnrRead <	87	) SnrLookUP =	27.3	;
	else if(SnrRead <	89	) SnrLookUP =	27.2	;
	else if(SnrRead <	90	) SnrLookUP =	27.1	;
	else if(SnrRead <	92	) SnrLookUP =	27		;
	else if(SnrRead <	93	) SnrLookUP =	26.9	;
	else if(SnrRead <	95	) SnrLookUP =	26.8	;
	else if(SnrRead <	96	) SnrLookUP =	26.7	;
	else if(SnrRead <	98	) SnrLookUP =	26.6	;
	else if(SnrRead <	100	) SnrLookUP =	26.5	;
	else if(SnrRead <	102	) SnrLookUP =	26.4	;
	else if(SnrRead <	104	) SnrLookUP =	26.3	;
	else if(SnrRead <	105	) SnrLookUP =	26.2	;
	else if(SnrRead <	106	) SnrLookUP =	26.1	;
	else if(SnrRead <	110	) SnrLookUP =	26		;
	else SnrLookUP = 0;
	return SnrLookUP;
}

I2C_STATUS_DBL Sec_1410xQamSnrResultCheck(void)
{
	U16 lvalue;
	U16 value;
	U16 value1;
	U16 value2;
	U16 result;
	I2C_STATUS_DBL SnrValue=0;

	value1 = MDrv_IIC_Read2Bytes(IIC_1410x_RegId,0x7f);
	value2 = MDrv_IIC_Read2Bytes(IIC_1410x_RegId,0xf0);
	result = ((unsigned int)value2>>8 & 0x01);

	value  = MDrv_IIC_Read2Bytes(IIC_1410x_RegId,0xf0);
	lvalue  = (value & 0xff);

⌨️ 快捷键说明

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