📄 scaler.lst
字号:
710 3 H_SYNC_Temp = 0xffff;
711 3 else
712 3 H_Counter = PixelRate * 512;
713 3 }
714 2 else
715 2 {
716 3 LocalTimer = 25;
717 3 while(LocalTimer > 0){
718 4 ch = ReadIIC563(0x0df) & 0x3f;
719 4 PixelRate = ch;
720 4 PixelRate <<= 8;
721 4 ch = ReadIIC563(0x0de);
722 4 PixelRate += ch;
723 4 PixelRate <<= 8;
724 4 ch = ReadIIC563(0x0dd);
725 4 PixelRate += ch;
726 4 if(abs(PixelRate - H_Counter) > 2){
727 5 H_Counter = PixelRate;
728 5 LocalTimer = 25;
729 5 }
730 4 if(DetectBacklight()) //waiting for pll stable
C51 COMPILER V7.06 SCALER 10/16/2007 19:09:01 PAGE 13
731 4 break;
732 4 }
733 3 H_Counter = PixelRate;
734 3 }
735 2 temp = ((float)FuncBuf[pCLOCK] * 536870912) / PixelRate;
736 2 PixelRate = temp;
737 2 for(k; k>0; k--)
738 2 PixelRate <<= 1;
739 2 WriteIIC563(0x0d2,(unsigned char)PixelRate);
740 2 WriteIIC563(0x0d3,(unsigned char)(PixelRate>>8));
741 2 WriteIIC563(0x0d4,(unsigned char)(PixelRate>>16));
742 2 }
743 1 WriteIIC563(0x0d7,(Byte)FuncBuf[pCLOCK]);
744 1 WriteIIC563(0x0d8,(Byte)(FuncBuf[pCLOCK]>>8));
745 1 if((SyncMode == 1)||(SyncMode == 2)||(SyncMode == 5)||(SyncMode == 6)){ //H+V SOG
746 2 WriteIIC563(0xd5,0x09);
747 2 }
748 1 else{
749 2 #if 0
if((HV_Pol & BIT_4) == 0)
WriteIIC563(0x0d5,0x03&(~BIT_3));
else
WriteIIC563(0x0d5,0x03|BIT_3);
#else
755 2 WriteIIC563(0x0d5,0x0b);
756 2 #endif
757 2 }
758 1 }
759
760 void SetDPLL(unsigned long dclk)
761 {
762 1 Byte i;
763 1 unsigned long temp;
764 1 unsigned long code DpllTab[4]={80000000,40000000,20000000,0}; //050428,Eason
765 1 for(i=0;i<4;i++)
766 1 if(dclk > DpllTab[i])
767 1 break;
768 1 WriteIIC563(0x0f1,0x10+i);
769 1 if(PanelTwoPixelPerClk == 1) //Jacky 20050107
770 1 WriteIIC563(0x1fb,i * 2);
771 1 else
772 1 WriteIIC563(0x1fb,i & 0xFE );
773 1 switch(i)
774 1 {
775 2 case 0:
776 2 temp = ((float)dclk / 1000) * 131072 / REFCLK;
777 2 break;
778 2 case 1:
779 2 temp = ((float)dclk / 1000) * 131072 / REFCLK * 2;
780 2 break;
781 2 case 2:
782 2 temp = ((float)dclk / 1000) * 131072 / REFCLK * 4;
783 2 break;
784 2 case 3:
785 2 temp = ((float)dclk / 1000) * 131072 / REFCLK * 8;
786 2 break;
787 2 };
788 1 WriteIIC563(0x0f2,(unsigned char)temp);
789 1 WriteIIC563(0x0f3,(unsigned char)(temp >> 8));
790 1 WriteIIC563(0x0f4,(unsigned char)(temp >> 16));
791 1 WriteIIC563(0x0f0,0x03);
792 1 }
C51 COMPILER V7.06 SCALER 10/16/2007 19:09:01 PAGE 14
793 void SetHP(void)
794 {
795 1 // Horizontal Start
796 1 WriteWordIIC563(0x034,FuncBuf[pHPOSITION]);
797 1 }
798 /*==========================================
799 ==========================================*/
800 void SetVP(void)
801 {
802 1 // Vertical Start
803 1 if(Interlance){
804 2 WriteWordIIC563(0x030,FuncBuf[pVPOSITION]);
805 2 if(V_SYNC < 550)
806 2 WriteWordIIC563(0x02e,FuncBuf[pVPOSITION]-1);
807 2 else
808 2 WriteWordIIC563(0x02e,FuncBuf[pVPOSITION]);
809 2 }else
810 1 // WriteWordIIC563(0x02e,0x0050);
811 1 WriteWordIIC563(0x02e,FuncBuf[pVPOSITION]);
812 1 }
813 /*==========================================
814 ==========================================*/
815 /*
816 void SetSharpness(void)
817 {
818 Word code H_Sharp[]={
819 0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,
820 0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,
821 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
822 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
823 };
824 WriteIIC563(0x060,H_Sharp[FuncBuf[pSHARPNESS]]);
825 WriteIIC563(0x066,FuncBuf[pSHARPNESS]/4);
826 }
827 */
828 /*==========================================
829 ==========================================*/
830 void SetBrightness(void)
831 {
832 1 /*
833 1 unsigned short value;
834 1
835 1 #define BACKLIGHT_50 ((maxBACKLIGHT-minBACKLIGHT)/2+minBACKLIGHT)
836 1
837 1 if(FuncBuf[pBRIGHTNESS]>BACKLIGHT_50) // max=111, min=18, 50%=46+18=64
838 1 {
839 1 value = FuncBuf[pBRIGHTNESS];
840 1 value = (value-BACKLIGHT_50);
841 1
842 1 //PWM9_REG = 3*value/5+60; // evan modify date 060214
843 1
844 1 PWM9_REG = 7*value/5+60;
845 1
846 1 WriteIIC563(0x061,0);
847 1 WriteIIC563(0x062,0);
848 1 }
849 1 else
850 1 {
851 1 PWM9_REG = 60;
852 1 value = 0x100 - (BACKLIGHT_50-FuncBuf[pBRIGHTNESS])*25/40;
853 1 WriteIIC563(0x061,0);
854 1 WriteIIC563(0x062,(Byte)value);
C51 COMPILER V7.06 SCALER 10/16/2007 19:09:01 PAGE 15
855 1 }
856 1 */
857 1 }
858 /*==========================================
859 ==========================================*/
860 void SetContrast(void)
861 {
862 1 Word value,k;
863 1
864 1 FuncBuf[pRCOLOR]=0x7f;
865 1 FuncBuf[pGCOLOR]=0x7f;
866 1 FuncBuf[pBCOLOR]=0x7f;
867 1 FuncBuf[pCONTRAST]=0x7f;
868 1 #if ContrastBlock == sRGBGain
// WriteIIC563(0x3C0,0x7c);
// WriteIIC563(0x3C4,0x80);//level0);
// WriteIIC563(0x3C5,0x80);//level1);
// WriteIIC563(0x3C6,0x80);//level2);
sRGB(200,200,200);
#else
875 1
876 1 k = FuncBuf[pCONTRAST] + 100; //78 ---- 178
877 1 value = FuncBuf[pRCOLOR];
878 1 value = (unsigned short)value * k / 128;
879 1 WriteIIC563(0x061,0x0d);
880 1 WriteIIC563(0x063,value);
881 1 value = FuncBuf[pGCOLOR];
882 1 value = (unsigned short)value * k / 128;
883 1 WriteIIC563(0x061,0x0e);
884 1 WriteIIC563(0x063,value);
885 1 value = FuncBuf[pBCOLOR];
886 1 value = (unsigned short)value * k / 128;
887 1 WriteIIC563(0x061,0x0f);
888 1 WriteIIC563(0x063,value);
889 1
890 1 #endif
891 1 }
892 /*==========================================
893 ==========================================*/
894 void ForceToBackground(Byte color_r,Byte color_g,Byte color_b)
895 {
896 1 unsigned char temp;
897 1 if((ForceToBack == 0)||(FactMode!= 0)){
898 2 ForceToBack = 1;
899 2 WriteIIC563(0x16b,color_r);
900 2 WriteIIC563(0x16c,color_g);
901 2 WriteIIC563(0x16d,color_b);
902 2 temp = ReadIIC563(0x159);
903 2 //WriteIIC563(0x159,(temp&0xc0|0x07)); //RGB
904 2 WriteIIC563(0x159,(temp&0xc0)); //RGB
905 2 WriteIIC563(0x154,0x02);
906 2 }
907 1 }
908 /*==========================================
909 ==========================================*/
910 void SetDisplayNormal(void)
911 {
912 1 Byte ch;
913 1 if(SyncMode == 3)
914 1 {
915 2 ;
916 2 }
C51 COMPILER V7.06 SCALER 10/16/2007 19:09:01 PAGE 16
917 1 else
918 1 {
919 2 WriteIIC563(0x1a9,0x00);
920 2 ch = ReadIIC563(0x101);
921 2 WriteIIC563(0x101,ch|BIT_5); //chip warm reset
922 2 //Sleep(20);
923 2 WriteIIC563(0x101,ch); //chip warm reset
924 2 }
925 1 #if DVImode == DEmode
926 1 // Jacky 20040623 For DE mode scaler shut down
927 1 if(SyncMode == 3) //DVI
928 1 {
929 2 WriteIIC563(0x1a9,0x00); //disable IRQ interrupt
930 2 ch = ReadIIC563(0x196);
931 2 WriteIIC563(0x196,0x94);
932 2 Sleep(20);
933 2 WriteIIC563(0x196,ch&(~BIT_7));
934 2 }
935 1 #endif
936 1 Sleep(80);
937 1 Sleep(50);
938 1 //-------------------------
939 1 WriteIIC563(0x1ab,0x3f); //clear IRQ
940 1 WriteIIC563(0x1ac,0x1f);
941 1 WriteIIC563(0x1a9,0x3c);
942 1 LoadADC_Gain();
943 1 if(SyncMode == 3) //DVI
944 1 {
945 2 WriteIIC563(0x068,0x00);
946 2 WriteIIC563(0x06a,0x00);
947 2 }
948 1 else
949 1 {
950 2 WriteIIC563(0x068,0x7a);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -