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

📄 scaler.lst

📁 车载DVD的主控MCU的源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 955   1              else
 956   1              {
 957   2                      WriteIIC563(0x068,0x7a);
 958   2                      WriteIIC563(0x06a,0x92);
 959   2              }
 960   1      ///////////////////////////////////////////
 961   1              WriteIIC563(0x101,0x00);
 962   1              WriteIIC563(0x1b9,0x02);  
 963   1              WriteIIC563(0x1ef,0x00);  
 964   1              WriteIIC563(0x1f7,0x00);  
 965   1              WriteIIC563(0x204,0x00);
 966   1      ///////////////////////////////////////////
 967   1              ForceToBack = 0;
 968   1              //WriteIIC563(0x159,(ReadIIC563(0x159)&0xc0|0x07));     //RGB
 969   1              WriteIIC563(0x159,(ReadIIC563(0x159)&0xc0));    //RGB
 970   1              if(ModePoint>7)
 971   1                      AutoTune();
 972   1              WriteIIC563(0x154,0x00);        //comeback to image
 973   1              WriteIIC563(0x16e,0x07);        //Graphic display enable
 974   1      }
 975          /*==========================================
 976          ==========================================*/
 977          void ScalerPowerUp(void)
 978          {
C51 COMPILER V7.06   SCALER                                                                12/11/2007 11:28:43 PAGE 17  

 979   1              unsigned char temp;
 980   1      //      PanelPowerOn();
 981   1      //      Sleep(PowerUpPanelTiming);
 982   1              PowerDown = 0;
 983   1              SetInterface();
 984   1              temp = ReadIIC563(0x00e);
 985   1              WriteIIC563(0x00e,temp | 0x07);
 986   1              WriteIIC563(0x150,DisplayControl);
 987   1      //      SetBrightness();
 988   1              LoadADC_Gain();
 989   1              SetContrast();
 990   1      #if PM
                      printf("Scaler PowerUp!!\r\n");
              #endif
 993   1      
 994   1      }
 995          /*==========================================
 996          ==========================================*/
 997          #define Manual_offset   0       //AGN request y50527
 998          void LoadADC_Gain(void)
 999          {
1000   1      /*
1001   1              Byte Temp;
1002   1                      FuncBuf[pROFFSET] = Read24C16(ep_ADC_R_Offset);
1003   1                      Temp = FuncBuf[pROFFSET];
1004   1                      WriteIIC563(0x003,Temp -Manual_offset);
1005   1                      FuncBuf[pGOFFSET] = Read24C16(ep_ADC_G_Offset);
1006   1                      Temp = FuncBuf[pGOFFSET];
1007   1                      WriteIIC563(0x006,Temp -Manual_offset);
1008   1                      FuncBuf[pBOFFSET] = Read24C16(ep_ADC_B_Offset);
1009   1                      Temp = FuncBuf[pBOFFSET];
1010   1                      WriteIIC563(0x009,Temp -Manual_offset);
1011   1              FuncBuf[pRADC] = Read24C16(ep_ADC_R_Gain);
1012   1              WriteIIC563(0x001,FuncBuf[pRADC]);
1013   1              FuncBuf[pGADC] = Read24C16(ep_ADC_G_Gain);
1014   1              WriteIIC563(0x004,FuncBuf[pGADC]);
1015   1              FuncBuf[pBADC] = Read24C16(ep_ADC_B_Gain);
1016   1              WriteIIC563(0x007,FuncBuf[pBADC]);
1017   1              //Set backend gain
1018   1      */      
1019   1      #if ContrastBlock == sRGBGain
                      WriteIIC563(0x061,0x0d);
                      WriteIIC563(0x063,0xf0);
                      WriteIIC563(0x061,0x0e);
                      WriteIIC563(0x063,0xf0);
                      WriteIIC563(0x061,0x0f);
                      WriteIIC563(0x063,0xf0);
              #endif
1027   1      }
1028          /*==========================================
1029          ==========================================*/
1030          
1031          unsigned char Get_active_index(void)
1032          {
1033   1              unsigned char i,Resolution;
1034   1              Resolution=EEP_ModeMap[T_EEaddr_Resol]&0x7f;
1035   1              for(i=0;i<sizeof Active_Tab/7 ;i++){
1036   2                              if(Resolution==Active_Tab[i].Resolution_tag){
1037   3                                      return i;
1038   3                              }
1039   2              }
1040   1              return 0;
C51 COMPILER V7.06   SCALER                                                                12/11/2007 11:28:43 PAGE 18  

1041   1              
1042   1      }
1043          
1044          /*==========================================
1045          ==========================================*/
1046          void SetCaptureEnable(void)
1047          {
1048   1              unsigned char temp;
1049   1              temp = ReadIIC563(0x020);
1050   1              WriteIIC563(0x020,temp & (~BIT_0));
1051   1              WaitSetup(5);
1052   1              WaitSetup(5);
1053   1              temp = ReadIIC563(0x020);
1054   1              WriteIIC563(0x020,temp|BIT_0);
1055   1      }
1056          /*==========================================
1057          ==========================================*/
1058          void sRGB(Byte RedGain,Byte GreenGain,Byte BlueGain)
1059          {
1060   1      #define Saturation 50
1061   1      #define Tint 50
1062   1              xdata Byte i,j;
1063   1              xdata Word ss,hh;
1064   1              xdata short temp,gain[3];
1065   1              xdata short UserPrefContrast;
1066   1              code Byte arry[3][3]={
1067   1                                                              {1,0,0},
1068   1                                                              {0,1,0},
1069   1                                                              {0,0,1}
1070   1                                                        };
1071   1              
1072   1              gain[0] = (Word)(RedGain*100)/255+30;
1073   1              gain[1] = (Word)(GreenGain*100)/255+30;
1074   1              gain[2] = (Word)(BlueGain*100)/255+30;
1075   1              ss = ((Word)Saturation * 256 + 50) / 100;
1076   1              hh = (((Word)Tint * 256 + 50) / 100) - 128;
1077   1              UserPrefContrast = 120; // for test only , 2004/04/13
1078   1              
1079   1              for(i=0; i<3; i++)
1080   1              {
1081   2                      WriteIIC563(0x1d0,((i * 2) + 0x31));
1082   2                      for(j=0; j<3; j++)
1083   2                      {
1084   3                              temp = ((((long)(UserPrefContrast<<1)*((long)gain[i]<<5))+2048)>>12)*(long)arry[i][j];
1085   3                              if(temp < 0)
1086   3                              {
1087   4                                      temp = temp ^ 0xffff;
1088   4                                      temp +=1 ;
1089   4                                      temp |= 0xf400;
1090   4                              }
1091   3                              WriteWordIIC563((0x1d1+(j*2)),temp);
1092   3                      }
1093   2              }
1094   1              WriteIIC563(0x1d0,0x3d);
1095   1      }
1096          #define Max_Video_VP    40
1097          Word code AvTable60[20][2]={
1098                          0x055,0x01ED,
1099                          0x053,0x0026,
1100                          0x057,0x01b3,
1101          //              0x059,0x009f,
1102          //              0x05b,0x029a,
C51 COMPILER V7.06   SCALER                                                                12/11/2007 11:28:43 PAGE 19  

1103                          0x059,0x002F,
1104                          0x05b,0x02D2,
1105                          
1106                          0x15b,0X031C,
1107                          0x15e,0X03E6,
1108                          0x15d,0X0006,
1109                          0x160,0X0028,
1110                           0x162,0X0025,          //9
1111                          0x166,0X0050,
1112                          0x164,0X02BD,
1113                          0x168,0X03B0,
1114                          0x16f,0X000B,           //d
1115                          0x171,0X0364,
1116                          0x175,0X0320,
1117                          0x17a,0X0003,
1118                          0x17c,0X0002,
1119                          0x17e,0X0009,
1120                          0x180,0X0000,
1121                                  };
1122                  Word code AvTable50[20][2]={
1123                          0x055,0x0000,
1124                          0x053,0x0098,
1125                          0x057,0x01B3,
1126          //              0x059,0x00ad,                    
1127          //              0x05b,0x028e,
1128                          0x059,0x002f,                    
1129                          0x05b,0x02CF,
1130                           
1131                          0x15b,0x031c,
1132                          0x15e,0x3e6,
1133                          0x15d,0x0006,
1134                          0x160,0x0028,
1135                          //0x162,PanelVActiveStart,              
1136                           0x162,0x0025, //22
1137                          0x166,0x004f,
1138                          0x164,0x2BD,
1139                          0x168,0x03b0,
1140                          //0x16f,PanelVActiveStart,
1141                          0x16f,0x000A,           //d
1142                          0x171,0x02E0,
1143                          0x175,0x0325,
1144                          0x17a,0x0046,
1145                          0x17c,0x0026,
1146                          0x17e,0x0069,
1147                          0x180,PanelWidth,
1148                  };
1149          
1150          void SetScalerAVNTSC(void)
1151          {
1152   1              Byte i;
1153   1      //      if(Video_50Hz)
1154   1              if(0)
1155   1              {//50Hz
1156   2                      SetDPLL(26000000);
1157   2                      for(i=0;i<20;i++)
1158   2                              WriteWordIIC563(AvTable50[i][0],AvTable50[i][1]);
1159   2              }
1160   1              else
1161   1              {//60Hz
1162   2                      SetDPLL(32300000);//(32500000);
1163   2                      for(i=0;i<20;i++)
1164   2                              WriteWordIIC563(AvTable60[i][0],AvTable60[i][1]);
C51 COMPILER V7.06   SCALER                                                                12/11/2007 11:28:43 PAGE 20  

1165   2              }
1166   1         
1167   1              WriteIIC563(0x072,0x60);        //Sync off  //xxx
1168   1              WriteIIC563(0x154,0x00);
1169   1              WriteIIC563(0x041,0x13);
1170   1              //WriteIIC563(0x179,0x07);      
1171   1              WriteWordIIC563(0x179,PanelMinHTotal);
1172   1              WriteIIC563(0x040,0x41);        //auto detect on
1173   1              WriteIIC563(0x16e,0x47);
1174   1              Sleep(100);
1175   1              WriteIIC563(0x040,0x45);        //auto detect off
1176   1      //      WriteIIC563(0x102,0x01);        //power down ADC
1177   1              WriteIIC563(0x102,0x00);        //for OD power  
1178   1              Sleep(100);
1179   1      
1180   1              i = ReadIIC563(0x101);
1181   1              WriteIIC563(0x101,i  |BIT_5);   //chip warm reset       
1182   1                      //Sleep(20);
1183   1              WriteIIC563(0x101,i);   //chip warm reset
1184   1              
1185   1              WriteIIC563(0x101,0x40);        
1186   1              WriteIIC563(0x1b9,0x02);
1187   1              WriteIIC563(0x1ef,0x04);
1188   1      //      WriteIIC563(0x1f7,0xc0);
1189   1              WriteIIC563(0x204,0x00);
1190   1              WriteIIC563(0x16e,ReadIIC563(0x16e)|BIT_7);
1191   1          
1192   1      
1193   1      // add by Eason 070503
1194   1              WriteIIC563(0x023, ReadIIC563(0x023)|0x01);     //enable video  // video

⌨️ 快捷键说明

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