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; |