📄 hx8824.lst
字号:
869 1 #if mode8060_8060
bVideo = 1;
S1 = 0;
S2 = 1;
Mode = 12;
I2CWriteByte(HX8824_ADDR, 0x10, 0x1C); // input format select
I2CWriteByte(HX8824_ADDR, 0x11, 0x07);
I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
I2CWriteByte(HX8824_ADDR, 0x21, 0x10);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
I2CWriteByte(HX8824_ADDR, 0x21, 0x10);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
I2CWriteByte(HX8824_ADDR, 0xA0, 0x11);
I2CWriteByte(HX8824_ADDR, 0xA1, 0x27);
I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
I2CWriteByte(HX8824_ADDR, 0x00, 0x20);
I2CWriteByte(HX8824_ADDR, 0x01, 0x04);
I2CWriteByte(HX8824_ADDR, 0x02, 0x58);
I2CWriteByte(HX8824_ADDR, 0x03, 0x02);
I2CWriteByte(HX8824_ADDR, 0x90, 0x20);
I2CWriteByte(HX8824_ADDR, 0x91, 0x04);
I2CWriteByte(HX8824_ADDR, 0x92, 0x80);
I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
I2CWriteByte(HX8824_ADDR, 0x94, 0xD8);
I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
I2CWriteByte(HX8824_ADDR, 0x96, 0x20);
I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
I2CWriteByte(HX8824_ADDR, 0x98, 0x74);
I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
I2CWriteByte(HX8824_ADDR, 0x9A, 0x04);
I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9C, 0x1B);
I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9E, 0x58);
I2CWriteByte(HX8824_ADDR, 0x9F, 0x02);
//***************** PLL ********************************************************
I2CWriteByte(HX8824_ADDR, 0xD0, 0x08); // P1
I2CWriteByte(HX8824_ADDR, 0xD1, 0x08); // P2
I2CWriteByte(HX8824_ADDR, 0xD2, 0x09); // N
I2CWriteByte(HX8824_ADDR, 0xD3, 0x2B); // M: 300 -1
I2CWriteByte(HX8824_ADDR, 0xD4, 0x01); // M
#endif
918 1 //****************************************************************************************
919 1 #if mode7224_4827
920 1 bVideo = 1;
C51 COMPILER V7.07 HX8824 09/26/2006 08:56:42 PAGE 16
921 1 S1 = 0;
922 1 S2 = 1;
923 1 Mode = 13;
924 1 I2CWriteByte(HX8824_ADDR, 0x00, 0xD0);
925 1 I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
926 1 I2CWriteByte(HX8824_ADDR, 0x02, 0xF3);
927 1 I2CWriteByte(HX8824_ADDR, 0x03, 0x00);
928 1 I2CWriteByte(HX8824_ADDR, 0x10, 0x1C); // input format select
929 1 I2CWriteByte(HX8824_ADDR, 0x11, 0x0F); // 656
930 1 I2CWriteByte(HX8824_ADDR, 0x20, 0x4D); // (243/272)*4096 = 0x0E4B
931 1 I2CWriteByte(HX8824_ADDR, 0x21, 0x0E);
932 1 I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
933 1 I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
934 1 I2CWriteByte(HX8824_ADDR, 0x20, 0x00); // (720/480)*4096 = 0x1800
935 1 I2CWriteByte(HX8824_ADDR, 0x21, 0x18);
936 1 I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
937 1 I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
938 1 I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
939 1 I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
940 1 I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
941 1 I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
942 1 I2CWriteByte(HX8824_ADDR, 0x26, 0x01);
943 1 I2CWriteByte(HX8824_ADDR, 0x29, 0x01); //
944 1 I2CWriteByte(HX8824_ADDR, 0xA0, 0x67); //
945 1 I2CWriteByte(HX8824_ADDR, 0xA1, 0x02); //
946 1 I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
947 1 I2CWriteByte(HX8824_ADDR, 0x90, 0x15);// 527
948 1 I2CWriteByte(HX8824_ADDR, 0x91, 0x02);
949 1 I2CWriteByte(HX8824_ADDR, 0x92, 0x29);// 41
950 1 I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
951 1 I2CWriteByte(HX8824_ADDR, 0x94, 0x2B);// 43
952 1 I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
953 1 I2CWriteByte(HX8824_ADDR, 0x96, 0xE0);// 480
954 1 I2CWriteByte(HX8824_ADDR, 0x97, 0x01);
955 1 I2CWriteByte(HX8824_ADDR, 0x98, 0x30);// 297
956 1 I2CWriteByte(HX8824_ADDR, 0x99, 0x01);
957 1 I2CWriteByte(HX8824_ADDR, 0x9A, 0x0A);// 10
958 1 I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
959 1 I2CWriteByte(HX8824_ADDR, 0x9C, 0x1D);// 12
960 1 I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
961 1 I2CWriteByte(HX8824_ADDR, 0x9E, 0x10);// 272
962 1 I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
963 1 //***************** PLL ********************************************************
964 1 I2CWriteByte(HX8824_ADDR, 0xD0, 0x29); // P1 clk_o = 9.4MHz
965 1 I2CWriteByte(HX8824_ADDR, 0xD1, 0x1B); // P2 clk_m = 14.1MHz
966 1 I2CWriteByte(HX8824_ADDR, 0xD2, 0x09); // N
967 1 I2CWriteByte(HX8824_ADDR, 0xD3, 0x48); // M:
968 1 I2CWriteByte(HX8824_ADDR, 0xD4, 0x01); // M
969 1 #endif
970 1 //****************************************************************************************
971 1 }
972
973 /* ================================================================
974 Name : Select_Video_Input
975 Purpose : According Pass Variable to change Input Mux Path
976 Passed : None
977 Notes : None
978 ================================================================ */
979
980 void Select_Video_Input(Byte VideoSrc)
981 {
982 1 switch(VideoSrc)
C51 COMPILER V7.07 HX8824 09/26/2006 08:56:42 PAGE 17
983 1 {
984 2 // From Video Decoder
985 2 case _AV:
986 2 case _YC:
987 2 //I2CWrtCNByte(HX8824_ADDR, &HX8824_Input_Format[2][0], HX8824_MAIN_INP_CLK, 2);
988 2 break;
989 2
990 2 // From ADC YUV, ADC Component
991 2 // case _Component:
992 2 // case _VGA_IN:
993 2 // I2CWrtCNByte(HX8824_ADDR, &HX8824_Input_Format[1][0], HX8824_MAIN_INP_CLK, 2);
994 2 // break;
995 2
996 2 // DVI Input
997 2 case _DVI:
998 2 //I2CWrtCNByte(HX8824_ADDR, &HX8824_Input_Format[0][0], HX8824_MAIN_INP_CLK, 2);
999 2 break;
1000 2 }
1001 1 }
1002
1003 /* ================================================================
1004 Name : Initial PLL
1005 Purpose : clock generator
1006 Passed : None
1007 Notes : None
1008 ================================================================ */
1009 void Init_PLL(void)
1010 {
1011 1 #if EX_PLL
I2CWriteByte(HX8824_ADDR, 0xE0, 0x1E); // use external clk_m and clk_o -->0x1C; internal:-->0x10
I2CWriteByte(PLL_ADDR, 0x0E, 0x1F);
I2CWriteByte(PLL_ADDR, 0x0B, 0x0A); // CLKM = 29.94 MHz
I2CWriteByte(PLL_ADDR, 0x14, 0x26);
I2CWriteByte(PLL_ADDR, 0x15, 0xF0);
I2CWriteByte(PLL_ADDR, 0x16, 0x5D);
I2CWriteByte(PLL_ADDR, 0x09, 0x0C); // CLKO = 33.3 MHz
I2CWriteByte(PLL_ADDR, 0x11, 0x08);
I2CWriteByte(PLL_ADDR, 0x12, 0xA3);
I2CWriteByte(PLL_ADDR, 0x13, 0x4C);
#endif
1023 1 #if IN_PLL
1024 1 I2CWriteByte(HX8824_ADDR, 0xE0, 0x13); // use external clk_m and clk_o -->0x1C; internal:-->0x10
1025 1 I2CWriteByte(HX8824_ADDR, 0xD0, 0x08);
1026 1 I2CWriteByte(HX8824_ADDR, 0xD1, 0x09);
1027 1 I2CWriteByte(HX8824_ADDR, 0xD2, 0x07);
1028 1 I2CWriteByte(HX8824_ADDR, 0xD3, 0xC7);
1029 1 I2CWriteByte(HX8824_ADDR, 0xD4, 0x00);
1030 1 #endif
1031 1
1032 1 }
1033
1034 /* ================================================================
1035 Name : Initial SAA7111
1036 Purpose :
1037 Passed : None
1038 Notes : None
1039 ================================================================ */
1040 void Init_SAA7111(void)
1041 {
1042 1 I2CWriteByte(SAA7111_ADDR, 0x02, 0xC0);
1043 1 I2CWriteByte(SAA7111_ADDR, 0x03, 0x33);
1044 1 I2CWriteByte(SAA7111_ADDR, 0x04, 0x00);
C51 COMPILER V7.07 HX8824 09/26/2006 08:56:42 PAGE 18
1045 1 I2CWriteByte(SAA7111_ADDR, 0x05, 0x00);
1046 1 I2CWriteByte(SAA7111_ADDR, 0x06, 0xEB);
1047 1 I2CWriteByte(SAA7111_ADDR, 0x07, 0xE0);
1048 1 I2CWriteByte(SAA7111_ADDR, 0x08, 0xC8);
1049 1 I2CWriteByte(SAA7111_ADDR, 0x09, 0x41);
1050 1 I2CWriteByte(SAA7111_ADDR, 0x0A, 0xD0); //0x95
1051 1 I2CWriteByte(SAA7111_ADDR, 0x0B, 0x47); //0x48
1052 1 I2CWriteByte(SAA7111_ADDR, 0x0C, 0x40);
1053 1 I2CWriteByte(SAA7111_ADDR, 0x0D, 0x00);
1054 1 I2CWriteByte(SAA7111_ADDR, 0x0E, 0x01);
1055 1 I2CWriteByte(SAA7111_ADDR, 0x10, 0xC0);
1056 1 I2CWriteByte(SAA7111_ADDR, 0x11, 0x0D);
1057 1 I2CWriteByte(SAA7111_ADDR, 0x12, 0x00);
1058 1 I2CWriteByte(SAA7111_ADDR, 0x13, 0x40);
1059 1 }
1060
1061 /* ================================================================
1062 Name : Initial SAA7114
1063 Purpose :
1064 Passed : None
1065 Notes : None
1066 ================================================================ */
1067 void Init_SAA7114(void)
1068 {
1069 1 code unsigned char T7114[136][2]=
1070 1 {{0x01,0x08},{0x02,0xc4},{0x03,0x20},{0x04,0x00},{0x05,0x00},{0x06,0xeb},{0x07,0xe0},
1071 1 {0x08,0xF8},{0x09,0x40},{0x0a,0x80},{0x0b,0x44},{0x0c,0x50},{0x0d,0x00},{0x0e,0x89},
1072 1 {0x0f,0x2a},{0x10,0x01},{0x11,0x00},{0x12,0xdf},{0x13,0x40},{0x14,0x08},{0x15,0x11},
1073 1 {0x16,0x01},{0x17,0x00},{0x18,0x40},{0x19,0x80},{0x40,0x00},{0x41,0xff},{0x42,0xff},
1074 1 {0x43,0xff},{0x44,0xff},{0x45,0xff},{0x46,0xff},{0x47,0xff},{0x48,0xff},{0x49,0xff},
1075 1 {0x4a,0xff},{0x4b,0xff},{0x4c,0xff},{0x4d,0xff},{0x4e,0xff},{0x4f,0xff},{0x50,0xff},
1076 1 {0x51,0xff},{0x52,0xff},{0x53,0xff},{0x54,0xff},{0x55,0xff},{0x56,0xff},{0x57,0xff},
1077 1 {0x58,0x40},{0x59,0x47},{0x5a,0x06},{0x5b,0x83},{0x5d,0x00},{0x5e,0x00},{0x60,0x00},
1078 1 {0x61,0x00},{0x62,0x00},{0x80,0x10},{0x83,0x01},{0x84,0x45},{0x85,0x00},{0x86,0x45},
1079 1 {0x87,0x01},{0x88,0xf8},{0x8f,0x00},{0x90,0x00},{0x91,0x08},{0x92,0x10},{0x93,0x80},
1080 1 {0x94,0x02},{0x95,0x00},{0x96,0xd0},{0x97,0x02},{0x98,0x0D},{0x99,0x00},{0x9a,0xF2},
1081 1 {0x9b,0x00},{0x9c,0xd0},{0x9d,0x02},{0x9e,0xF0},{0x9f,0x00},{0xa0,0x01},{0xa1,0x00},
1082 1 {0xa2,0x00},{0xa4,0x80},{0xa5,0x40},{0xa6,0x40},{0xa8,0x00},{0xa9,0x04},{0xaa,0x00},
1083 1 {0xac,0x00},{0xad,0x02},{0xae,0x00},{0xb0,0x00},{0xb1,0x04},{0xb2,0x00},{0xb3,0x04},
1084 1 {0xb4,0x00},{0xb8,0x00},{0xbc,0x00},{0xc0,0x00},{0xc1,0x08},{0xc2,0x10},{0xc3,0x80},
1085 1 {0xc4,0x00},{0xc5,0x00},{0xc6,0xd0},{0xc7,0x02},{0xc8,0x0C},{0xc9,0x00},{0xca,0xf2},
1086 1 {0xcb,0x00},{0xcc,0xd0},{0xcd,0x02},{0xce,0xf0},{0xcf,0x00},{0xd0,0x00},{0xd1,0x00},
1087 1 {0xd2,0x00},{0xd4,0x80},{0xd5,0x40},{0xd6,0x40},{0xd8,0x00},{0xd9,0x04},{0xda,0x20},
1088 1 {0xdc,0x00},{0xdd,0x02},{0xde,0x00},{0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -