📄 samsungdtvs205.c
字号:
}
/**************************************************************************
* S5H1409 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: [13:0]
/**************************************************************************/
double Qam64SnrLookUpTable ( int SnrRead )
{
double 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;
}
double Qam256SnrLookUpTable ( int SnrRead )
{
double 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;
}
double SamsungS5H1409xQamSnrResultCheck ( void )
{
U16 lvalue;
U16 value;
U16 value1;
U16 value2;
U16 result;
double SnrValue = 0;
value1 = MDrv_IIC_Read2Bytes( SAMSUNG_S5H1409_I2C_ADDR, 0x85 );
value2 = MDrv_IIC_Read2Bytes( SAMSUNG_S5H1409_I2C_ADDR, 0xf0 );
result = ( ( unsigned int ) value2 >> 8 & 0x01 );
value = MDrv_IIC_Read2Bytes( SAMSUNG_S5H1409_I2C_ADDR, 0xf0 );
lvalue = ( value & 0xff );
if ( value1 == 0x110 && result == 1 )
{
SnrValue = Qam256SnrLookUpTable( lvalue );
}
else if ( value1 == 0x110 && result == 0 )
{
SnrValue = Qam64SnrLookUpTable( lvalue );
}
else if ( value1 == 0x100 )
{
SnrValue = Qam64SnrLookUpTable( lvalue );
}
else if ( value1 == 0x101 )
{
SnrValue = Qam256SnrLookUpTable( lvalue );
}
return ( SnrValue );
}
BOOLEAN SamsungS5H1409xQAMCheckLock()
{
U8 Counter=0;
while(1)
{
if(SamsungS5H1409xVsb_QAM_Master_Lock())
{
SamsungS5H1409AMHUM_SetDriver();
#if TS_PARALLEL_OUTPUT
SamsungS5H1409_Interleave_Parallel_ModeSet();
#else
SamsungS5H1409_Interleave_Serial_ModeSet();
#endif
return TRUE;
}
else if(Counter==QAM_CHECK_LOCK_COUNTER)
return FALSE;
else
msAPI_Timer_Delayms(QAM_CHECK_LOCK_TIME_SLICE);
Counter++;
}
}
BOOLEAN SamsungS5H1409xAGCCheckLock()
{
U8 Counter=0;
while(1)
{
if(SamsungS5H1409xQAM_IsAGC_Lock())
return TRUE;
else if(Counter==QAM_CHECK_AGC_LOCK_COUNTER)
return FALSE;
else
msAPI_Timer_Delayms(QAM_CHECK_AGC_LOCK_TIME_SLICE);
Counter++;
}
}
#undef _SAMSUNGDTVS205_C_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -