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

📄 scaler.lst

📁 车载SCALER模块源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 951   2                      WriteIIC563(0x06a,0x92);
 952   2              }
 953   1      ///////////////////////////////////////////
 954   1              WriteIIC563(0x101,0x00);
 955   1              WriteIIC563(0x1b9,0x02);  
 956   1              WriteIIC563(0x1ef,0x00);  
 957   1              WriteIIC563(0x1f7,0x00);  
 958   1              WriteIIC563(0x204,0x00);
 959   1      ///////////////////////////////////////////
 960   1              ForceToBack = 0;
 961   1              //WriteIIC563(0x159,(ReadIIC563(0x159)&0xc0|0x07));     //RGB
 962   1              WriteIIC563(0x159,(ReadIIC563(0x159)&0xc0));    //RGB
 963   1              if(ModePoint>7)
 964   1                      AutoTune();
 965   1              WriteIIC563(0x154,0x00);        //comeback to image
 966   1              WriteIIC563(0x16e,0x07);        //Graphic display enable
 967   1      }
 968          /*==========================================
 969          ==========================================*/
 970          void ScalerPowerUp(void)
 971          {
 972   1              unsigned char temp;
 973   1      //      PanelPowerOn();
 974   1      //      Sleep(PowerUpPanelTiming);
 975   1              PowerDown = 0;
 976   1              SetInterface();
 977   1              temp = ReadIIC563(0x00e);
 978   1              WriteIIC563(0x00e,temp | 0x07);
C51 COMPILER V7.06   SCALER                                                                10/16/2007 19:09:01 PAGE 17  

 979   1              WriteIIC563(0x150,DisplayControl);
 980   1      //      SetBrightness();
 981   1              LoadADC_Gain();
 982   1              SetContrast();
 983   1      #if PM
                      printf("Scaler PowerUp!!\r\n");
              #endif
 986   1      
 987   1      }
 988          /*==========================================
 989          ==========================================*/
 990          #define Manual_offset   0       //AGN request y50527
 991          void LoadADC_Gain(void)
 992          {
 993   1      /*
 994   1              Byte Temp;
 995   1                      FuncBuf[pROFFSET] = Read24C16(ep_ADC_R_Offset);
 996   1                      Temp = FuncBuf[pROFFSET];
 997   1                      WriteIIC563(0x003,Temp -Manual_offset);
 998   1                      FuncBuf[pGOFFSET] = Read24C16(ep_ADC_G_Offset);
 999   1                      Temp = FuncBuf[pGOFFSET];
1000   1                      WriteIIC563(0x006,Temp -Manual_offset);
1001   1                      FuncBuf[pBOFFSET] = Read24C16(ep_ADC_B_Offset);
1002   1                      Temp = FuncBuf[pBOFFSET];
1003   1                      WriteIIC563(0x009,Temp -Manual_offset);
1004   1              FuncBuf[pRADC] = Read24C16(ep_ADC_R_Gain);
1005   1              WriteIIC563(0x001,FuncBuf[pRADC]);
1006   1              FuncBuf[pGADC] = Read24C16(ep_ADC_G_Gain);
1007   1              WriteIIC563(0x004,FuncBuf[pGADC]);
1008   1              FuncBuf[pBADC] = Read24C16(ep_ADC_B_Gain);
1009   1              WriteIIC563(0x007,FuncBuf[pBADC]);
1010   1              //Set backend gain
1011   1      */      
1012   1      #if ContrastBlock == sRGBGain
                      WriteIIC563(0x061,0x0d);
                      WriteIIC563(0x063,0xf0);
                      WriteIIC563(0x061,0x0e);
                      WriteIIC563(0x063,0xf0);
                      WriteIIC563(0x061,0x0f);
                      WriteIIC563(0x063,0xf0);
              #endif
1020   1      }
1021          /*==========================================
1022          ==========================================*/
1023          
1024          unsigned char Get_active_index(void)
1025          {
1026   1              unsigned char i,Resolution;
1027   1              Resolution=EEP_ModeMap[T_EEaddr_Resol]&0x7f;
1028   1              for(i=0;i<sizeof Active_Tab/7 ;i++){
1029   2                              if(Resolution==Active_Tab[i].Resolution_tag){
1030   3                                      return i;
1031   3                              }
1032   2              }
1033   1              return 0;
1034   1              
1035   1      }
1036          
1037          /*==========================================
1038          ==========================================*/
1039          void SetCaptureEnable(void)
1040          {
C51 COMPILER V7.06   SCALER                                                                10/16/2007 19:09:01 PAGE 18  

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

1103                           0x162,0X001C,          //9
1104                          0x166,0X0050,
1105                          0x164,0X03B4,
1106                          0x168,0X03B0,
1107                          0x16f,0X0000,           //d
1108                          0x171,0X0295,
1109                          0x175,0X033A,
1110                          0x17a,0X0003,
1111                          0x17c,0X0002,
1112                          0x17e,0X0009,
1113                          0x180,0X0000,
1114                                  };
1115                  Word code AvTable50[20][2]={
1116                          0x055,0x0000,
1117                          0x053,0x0098,
1118                          0x057,0x0139,
1119          //              0x059,0x00ad,                    
1120          //              0x05b,0x028e,
1121                          0x059,0x002f,                    
1122                          0x05b,0x0299,
1123                           
1124                          0x15b,0x031c,
1125                          0x15e,0x3e6,
1126                          0x15d,0x0017,
1127                          0x160,0x0028,
1128                          //0x162,PanelVActiveStart,              
1129                           0x162,0x0022,          //9
1130                          0x166,0x004f,
1131                          0x164,0x1fe,
1132                          0x168,0x03b0,
1133                          //0x16f,PanelVActiveStart,
1134                          0x16f,0x0000,           //d
1135                          0x171,0x0210,
1136                          0x175,0x0332,
1137                          0x17a,0x0003,
1138                          0x17c,0x0002,
1139                          0x17e,0x0069,
1140                          0x180,PanelWidth,
1141                  };
1142          
1143          void SetScalerAVNTSC(void)
1144          {
1145   1              Byte i;
1146   1      //      if(Video_50Hz)
1147   1              if(0)
1148   1              {//50Hz
1149   2                      SetDPLL(26000000);
1150   2                      for(i=0;i<20;i++)
1151   2                              WriteWordIIC563(AvTable50[i][0],AvTable50[i][1]);
1152   2              }
1153   1              else
1154   1              {//60Hz
1155   2                      SetDPLL(32500000);
1156   2                      for(i=0;i<20;i++)
1157   2                              WriteWordIIC563(AvTable60[i][0],AvTable60[i][1]);
1158   2              }
1159   1         
1160   1              WriteIIC563(0x072,0x60);        //Sync off  //xxx
1161   1              WriteIIC563(0x154,0x00);
1162   1              WriteIIC563(0x041,0x13);
1163   1              //WriteIIC563(0x179,0x07);      
1164   1              WriteWordIIC563(0x179,PanelMinHTotal);
C51 COMPILER V7.06   SCALER                                                                10/16/2007 19:09:01 PAGE 20  

1165   1              WriteIIC563(0x040,0x41);        //auto detect on
1166   1              WriteIIC563(0x16e,0x47);
1167   1              Sleep(200);
1168   1              WriteIIC563(0x040,0x45);        //auto detect off
1169   1      //      WriteIIC563(0x102,0x01);        //power down ADC
1170   1              WriteIIC563(0x102,0x00);        //for OD power  
1171   1              Sleep(200);
1172   1      
1173   1              i = ReadIIC563(0x101);
1174   1              WriteIIC563(0x101,i  |BIT_5);   //chip warm reset       
1175   1                      //Sleep(20);
1176   1              WriteIIC563(0x101,i);   //chip warm reset
1177   1              
1178   1              WriteIIC563(0x101,0x40);        
1179   1              WriteIIC563(0x1b9,0x02);
1180   1              WriteIIC563(0x1ef,0x04);
1181   1      //      WriteIIC563(0x1f7,0xc0);
1182   1              WriteIIC563(0x204,0x00);
1183   1              WriteIIC563(0x16e,ReadIIC563(0x16e)|BIT_7);
1184   1          
1185   1      
1186   1      // add by Eason 070503
1187   1              WriteIIC563(0x023, ReadIIC563(0x023)|0x01);     //enable video  // video

⌨️ 快捷键说明

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