Quantcast
Channel: EngineerZone: Message List
Viewing all articles
Browse latest Browse all 36216

Re: Adv7441a sync output resolution of 1600x1200 problems

$
0
0

Hello, if in front of the register initialization, 1600x1200 on it, but I'll switch the resolution 1920x12801280x720, normally they become abnormal, which registers is not covered, script

 

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x04);

SyncInfo->TMDS_A=(temp&(0x01<<3))>>3;

SyncInfo->TMDS_B=(temp&(0x01<<2))>>2;



temp = Device_adv7441_Read8_Usermap(pObj, 0xB1);

SyncInfo->Interlaced = (temp&0x40) > 0 ? 1 : 0;



temp = Device_adv7441_Read8_Hdmimap(pObj, 0x1E);

wTotPixLine = (temp&0x0F)<<8;

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x1F);

wTotPixLine += temp;



temp = Device_adv7441_Read8_Hdmimap(pObj, 0x09);

length = (temp&0x0F)<<8;

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x0A);

length += temp;



if((1150<length)&&(length<1250))


SyncInfo->Interlaced =0;



SyncInfo->HTotPix = wTotPixLine;                              

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x26);

wcurrTotField0_Hght = (temp&0x0F)<<8;

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x27);

wcurrTotField0_Hght += temp;

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x28);

wcurrTotField1_Hght = (temp&0x0F)<<8;

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x29);

wcurrTotField1_Hght += temp;

 

 


if(SyncInfo->Interlaced) {


SyncInfo->VTotPix =( (wcurrTotField1_Hght >> 1)







+ (wcurrTotField0_Hght >> 1))>>1;

}

else {


SyncInfo->VTotPix = (wcurrTotField0_Hght) >> 1;

}

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x0B);

w_deep_color_mode = ((temp & 0x60) >> 5);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x05);

pix_rep = (temp & 0x0F);

pix_rep++;








/*pixel repetition factor*/


 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x06);

wtemp1 = ((FXTAL/10)*temp)/(27000000/10);

dwTMDS_Freq = (unsigned int )wtemp1;

 

 


wtemp1 = SyncInfo->HTotPix;

/*HSync Frequency in 100Hz*/

if(wtemp1 != 0)

{


dwtemp2 = (unsigned int ) (((dwTMDS_Freq * 1000000)/ (wtemp1))/10);


SyncInfo->HFreq = (unsigned short ) dwtemp2;


if(pix_rep != 0)


{



SyncInfo->HFreq = SyncInfo->HFreq/pix_rep ;


}

}

 

 


wtemp3 = SyncInfo->HFreq;








/*VSync Frequency*/

wtemp4 = SyncInfo->VTotPix;

if(wtemp4 !=0) {


dwtemp5 = (unsigned int ) (((wtemp3 * 10)/wtemp4)); //dwtemp5 = (unsigned int ) (((wtemp3 * 10)/

 

 



SyncInfo->VFreq = (unsigned short ) dwtemp5;

 

 



if(SyncInfo->Interlaced) {



SyncInfo->VFreq = SyncInfo->VFreq ; //SyncInfo->VFreq = SyncInfo->VFreq << 1;


}

}

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x20);

wHsync_FrontPorch = ((temp & 0x3) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x21);

wHsync_FrontPorch += temp;



temp = Device_adv7441_Read8_Hdmimap(pObj, 0x24);

wHsync_BackPorch = ((temp & 0x3) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x25);

wHsync_BackPorch += temp;

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x22);

wHsync_PulseWidth = ((temp & 0x3) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x23);

wHsync_PulseWidth += temp;



temp = Device_adv7441_Read8_Hdmimap(pObj, 0x2A);

wFiled0_Vsync_FrontPorch = ((temp & 0x1F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x2B);

wFiled0_Vsync_FrontPorch += temp;

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x32);

wFiled0_Vsync_BackPorch = ((temp & 0x1F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x33);

wFiled0_Vsync_BackPorch += temp;



temp = Device_adv7441_Read8_Hdmimap(pObj, 0x2E);

wFiled0_Vsync_PulseWidth = ((temp & 0x1F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x2F);

wFiled0_Vsync_PulseWidth += temp;



temp = Device_adv7441_Read8_Hdmimap(pObj, 0x2C);

wFiled1_Vsync_FrontPorch = ((temp & 0x1F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x2D);

wFiled1_Vsync_FrontPorch += temp;

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x34);

wFiled1_Vsync_BackPorch = ((temp & 0x1F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x35);

wFiled1_Vsync_BackPorch += temp;

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x30);

wFiled1_Vsync_PulseWidth = ((temp & 0x1F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x31);

wFiled1_Vsync_PulseWidth += temp;

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x09);

length = ((temp & 0x0F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x0A);

length += temp;

 

 


temp = Device_adv7441_Read8_Hdmimap(pObj, 0x07);

width = ((temp & 0x0F) << 8);

temp = Device_adv7441_Read8_Hdmimap(pObj, 0x08);

width += temp;



Viewing all articles
Browse latest Browse all 36216

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>