?? scaler.lst
字號:
868 1
869 1 #if PANEL == AU_L170EN05
WaitSetup(8);
Hr = ReadIIC563(0x184)+(ReadIIC563(0x185)*256); //read R1
//printf("Hr = %x = %u\n",Hr,Hr);
dstHtotal = ReadIIC563(0x183) & 0x0f;
dstHtotal <<= 8;
dstHtotal |= ReadIIC563(0x182);
dstVtotal = (ReadIIC563(0x1dd) & 0x0f) << 8;
dstVtotal += ReadIIC563(0x1dc);
dstVtotal += PanelHeight;
//printf("Htotal=%x = %u\n",dstHtotal,dstHtotal);
//printf("Vtotal=%x = %u\n",dstVtotal,dstVtotal);
WriteWordIIC563(0x15e,dstHtotal);
WriteIIC563(0x150,(DisplayControl & ~BIT_5));
WriteIIC563(0x186,0x12);
WaitSetup(8);
Hr2 = ReadIIC563(0x184)+(ReadIIC563(0x185)*256); //read R2
//printf("Hr2 = %x = %u\n",Hr2,Hr2);
if (Hr2 < 0xa8){
i = 0xa8 - Hr2;
if ((Hr-0x0d+(unsigned long)i*PanelHeight/dstVtotal) < 0x80)
i = i + ((unsigned long)0x80 - (Hr-0x0d))*dstVtotal/PanelHeight;
else if ((Hr-0x0d+(unsigned long)i*PanelHeight/dstVtotal) > 0x380)
i = i + ((unsigned long)PanelHeight - (Hr-0x0d) + 0x80)*dstVtotal/PanelHeight;
}
else if (Hr2 > (dstHtotal - 0x58)){
i = dstHtotal - Hr2 + 0xa8;
if ((Hr-0x0d+(unsigned long)i*PanelHeight/dstVtotal) < 0x80)
i = i + ((unsigned long)0x80 - (Hr-0x0d))*dstVtotal/PanelHeight;
else if ((Hr-0x0d+(unsigned long)i*PanelHeight/dstVtotal) > 0x380)
i = i + ((unsigned long)PanelHeight - (Hr-0x0d) + 0x80)*dstVtotal/PanelHeight;
}
else {
i = 0;
if ((Hr-0x0d) < 0x80){
i = i + ((unsigned long)0x80 - (Hr-0x0d))*dstVtotal/PanelHeight;
Hr2 = Hr2 + i;
if (Hr2 >= dstHtotal)
Hr2 = Hr2 - dstHtotal;
if ( Hr2 < 0xa8)
i = i + 0xa8 - Hr2;
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 16
else if (Hr2 > (dstHtotal - 0x58))
i = i + dstHtotal - Hr2 + 0xa8;
}
else if ((Hr-0x0d) > 0x380){
i = i + (PanelHeight - (Hr-0x0d) + (unsigned long)0x80)*dstVtotal/PanelHeight;
Hr2 = Hr2 + i;
if (Hr2 < dstVtotal)
Hr2 = Hr2 + dstHtotal- dstVtotal;
else
Hr2 = Hr2 - dstVtotal;
if (Hr2 >= dstHtotal)
Hr2 = Hr2 - dstHtotal;
if (Hr2 < 0xa8)
i = i + 0xa8 - Hr2;
else if (Hr2 > (dstHtotal - 0x58))
i = i + dstHtotal - Hr2 + 0xa8;
}
}
temp = dclk * ((float)i);
//printf("temp=%lu\n",temp);
temp2 = temp / ((unsigned long)dstVtotal*dstHtotal);
//printf("temp2=%lu\n",temp2);
dclk += temp2;
// printf("Dclk1=%lu\n",dclk);
SetDPLL(dclk);
WaitSetup(8);
WriteIIC563(0x150,(DisplayControl));
WriteIIC563(0x186,0x00);
WaitSetup(8);
#endif
940 1 #if PANEL == Samsung_LTM213U4_L01|| PANEL == Sharp_FG170M1LA04
WaitSetup(8);
Hr = ReadIIC563(0x184)+(ReadIIC563(0x185)*256); //read R1
//printf("Hr = %x = %u\n",Hr,Hr);
dstHtotal = ReadIIC563(0x183) & 0x0f;
dstHtotal <<= 8;
dstHtotal |= ReadIIC563(0x182);
dstVtotal = (ReadIIC563(0x1dd) & 0x0f) << 8;
dstVtotal += ReadIIC563(0x1dc);
dstVtotal += PanelHeight;
//printf("Htotal=%x = %u\n",dstHtotal,dstHtotal);
//printf("Vtotal=%x = %u\n",dstVtotal,dstVtotal);
WriteWordIIC563(0x15e,dstHtotal);
WriteIIC563(0x150,(DisplayControl & ~BIT_5));
WriteIIC563(0x186,0x12);
WaitSetup(8);
Hr2 = ReadIIC563(0x184)+(ReadIIC563(0x185)*256); //read R2
//printf("Hr2 = %x = %u\n",Hr2,Hr2);
temp2=(unsigned long)dstHtotal*i+Hr2;
i=(unsigned short)(temp2 & 0x7ff);
if (Hr < (0x80 + 0x0d))
{
Hr2 = ((float)0x80+0x0d-Hr)*dstVtotal/PanelHeight;
i= i+ Hr2;
i= i & 0xffff;
if((((i/2)&0xfff)<=0x000)&&(((i/2)&0xfff)>=0x0e0)) // 0x2aa flicker; 0x406 first line error
{
i=0x32a-i+ Hr2;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk+=temp;
}
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 17
else if((((i/2)&0xfff)<=0x720)&&(((i/2)&0xfff)>=0x700))
{
i=0x486-i+ Hr2;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk+=temp;
}
else
{
i=Hr2;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk+=temp;
}
}
else if (Hr > (PanelHeight -0x80 + 0x0d))
{
Hr2 = ((float)Hr -(PanelHeight-0x80+0x0d))*dstVtotal/PanelHeight;
i= i- Hr2;
i= i & 0x7ff;
if((((i/2)&0xfff)<=0x000)&&(((i/2)&0xfff)>=0x0e0)) // 0x2aa flicker; 0x406 first line error
{
i=i-0x22a+ Hr2;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk-=temp;
}
else if((((i/2)&0xfff)<=0x720)&&(((i/2)&0xfff)>=0x700))
{
i=i-0x386+ Hr2;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk-=temp;
}
else
{
i=Hr2;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk-=temp;
}
}
else if (Hr < (PanelHeight/2))
{
if((((i/2)&0xfff)<=0x000)&&(((i/2)&0xfff)>=0x0e0)) // 0x2aa flicker; 0x406 first line error
{
i=0x32a-i;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk+=temp;
}
else if((((i/2)&0xfff)<=0x720)&&(((i/2)&0xfff)>=0x700))
{
i=0x486-i;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk+=temp;
}
else
{
i=0;
temp= (float)dclk *i;
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 18
temp=temp/dstVtotal/dstHtotal;
dclk+=temp;
}
}
else
{
if((((i/2)&0xfff)<=0x000)&&(((i/2)&0xfff)>=0x0e0)) // 0x2aa flicker; 0x406 first line error
{
i=i-0x22a;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk-=temp;
}
else if((((i/2)&0xfff)<=0x720)&&(((i/2)&0xfff)>=0x700))
{
i=i-0x386;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk-=temp;
}
else
{
i=0;
temp= (float)dclk *i;
temp=temp/dstVtotal/dstHtotal;
dclk-=temp;
}
}
SetDPLL(dclk);
WaitSetup(8);
WriteIIC563(0x150,(DisplayControl));
WriteIIC563(0x186,0x00);
WaitSetup(8);
#endif
1069 1
1070 1 #if PANEL == LP_LM170E01
Hr = ReadWordIIC563(0x184);
// printf("Hr1 = %d\r\n",Hr);
// printf("DCLK1 = %ld\r\n",dclk);
Ht = (((unsigned long)PanelHeight*(dstHtotal-1)) + Hr) / Vresolution ;
// printf("Ht = %d\r\n",Ht);
WriteIIC563(0x186,0x12); //read Hr2
WriteIIC563(0x150,(DisplayControl & ~BIT_5)); //manual HTotal
WaitSetup(8);
//if(H_SYNC_Temp == 0xffff){
// WriteIIC563(0x150,DisplayControl); //fifo auto lock, auto HTotal
// Reg0x154 = 0x02;
// goto ERROR;
//}
Hr2 = ReadWordIIC563(0x184);
// printf("Hr2 = %d\r\n",Hr2);
dstVtotal = ReadWordIIC563(0x1dc) & 0x0fff;
dstVtotal += PanelHeight;
WriteWordIIC563(0x15b,dstVtotal); // Display Vtotal
// printf("dstVtotal 1 = %d\r\n",dstVtotal);
if((Hresolution == 1152)||(Hresolution == 1280))
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 19
// if(H_ActiveTab[Resolution] == 1152)
SCFactor = 1;
else
SCFactor = (Ht+(dstVtotal/2))/dstVtotal;
// printf("SCFactor = %bd\r\n",SCFactor);
Hr_diff1 = abs(Hr2 - (abs(Ht - ((SCFactor)*dstVtotal))+100));
Hr_diff2 = dstHtotal - Hr2 + (abs(Ht - ((SCFactor)*dstVtotal))+100);
// printf("Hr_diff1 = %d\r\n",Hr_diff1);
// printf("Hr_diff2 = %d\r\n",Hr_diff2);
if(Hr_diff1 > Hr_diff2){
temp2 = (unsigned long)Hr_diff2 * PanelHeight / dstVtotal;
if(((Hr + temp2) > PanelHeight) && (Hr_diff2 > (dstHtotal - dstVtotal))){
Hr_diff2 = Hr_diff2 - (dstHtotal - dstVtotal);
temp2 = (unsigned long)Hr_diff2 * PanelHeight / dstVtotal;
if((Hr + temp2) <= (PanelHeight + 0x0d)){
temp2 = PanelHeight + 0x1d - (Hr + temp2);
Hr_diff2 = Hr_diff2 + (unsigned long)temp2 * dstVtotal / PanelHeight;
}
}
temp = (float)dclk * Hr_diff2;
temp2 = temp / dstVtotal / dstHtotal;
dclk += temp2;
// printf("temp = %f\r\n",temp);
// printf("Hr_diff2 = %d\r\n",Hr_diff2);
// printf("DCLK2 = %ld\r\n",dclk);
}
else{
if(Hr2 > (abs(Ht - ((SCFactor)*dstVtotal))+100)){
temp2 = (unsigned long)Hr_diff1*PanelHeight/dstVtotal;
if(Hr < temp2 && Hr_diff1 > (dstHtotal-dstVtotal))
Hr_diff1 = Hr_diff1-(dstHtotal-dstVtotal);
temp = (float)dclk * Hr_diff1;
temp2 = temp / dstVtotal / dstHtotal;
dclk -= temp2;
// printf("temp = %f\r\n",temp);
// printf("Hr_diff1 = %d\r\n",Hr_diff1);
// printf("DCLK3 = %ld\r\n",dclk);
}
else{
temp2 = (unsigned long)Hr_diff1*PanelHeight/dstVtotal;
if((Hr + temp2) > PanelHeight && Hr_diff1 > (dstHtotal-dstVtotal)){
Hr_diff1 = Hr_diff1-(dstHtotal-dstVtotal);
temp2 = (unsigned long)Hr_diff1*PanelHeight/dstVtotal;
if ((Hr + temp2) <= (PanelHeight + 0x0d)){
temp2 = PanelHeight + 0x1d - (Hr + temp2);
Hr_diff2 = Hr_diff1 + (unsigned long)temp2*dstVtotal/PanelHeight;
}
}
temp = (float)dclk * Hr_diff1;
temp2 = temp / dstVtotal / dstHtotal;
dclk += temp2;
// printf("temp = %f\r\n",temp);
// printf("Hr_diff1 = %d\r\n",Hr_diff1);
// printf("DCLK4 = %ld\r\n",dclk);
}
}
SetDPLL(dclk);
WriteIIC563(0x150,DisplayControl); //fifo auto lock, auto HTotal
WriteIIC563(0x186,0x00);
C51 COMPILER V6.12 SCALER 03/05/2008 14:35:00 PAGE 20
WaitSetup(8);
//if(H_SYNC_Temp == 0xffff){
// WriteIIC563(0x150,DisplayControl); //fifo auto lock, auto HTotal
// Reg0x154 = 0x02;
// goto ERROR;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -