📄 hx8824.lst
字号:
C51 COMPILER V7.07 HX8824 09/26/2006 08:56:42 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE HX8824
OBJECT MODULE PLACED IN HX8824.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE HX8824.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*********************************************************************
2
3 COPYRIGHT (C) Himax Technologies, Inc.
4
5 File name : HX8824.c
6
7 Description : Implement HX8824 control function
8
9 Author : Taylor
10
11 Create date : 2004/10/01
12
13 Modifications :
14
15 *********************************************************************/
16
17 #define _HX8824_C
18
19 /********************** Include Section *****************************/
20
21 #include "hx8824.h"
22 #include "rs232.h"
23 #include "osd.h"
24 #include "Key.h"
25
26 /**************** Function Implement Section ************************/
27
28 /* ================================================================
29 Name : Init_HX8824
30 Purpose : Initial HX8824 Device
31 Passed : None
32 Notes : None
33 ================================================================ */
34
35 void Init_HX8824(void)
36 {
37 1
38 1 //***************** version B***********************************************
39 1 /*
40 1 I2CWriteByte(HX8824_ADDR, 0x41, 0x10); // initial Image enhancement
41 1 I2CWriteByte(HX8824_ADDR, 0x42, 0xf0);
42 1 I2CWriteByte(HX8824_ADDR, 0x43, 0x00);
43 1 I2CWriteByte(HX8824_ADDR, 0x44, 0xf0);
44 1 I2CWriteByte(HX8824_ADDR, 0x45, 0x0c);
45 1 I2CWriteByte(HX8824_ADDR, 0x46, 0x80);
46 1 I2CWriteByte(HX8824_ADDR, 0x47, 0x80);
47 1 I2CWriteByte(HX8824_ADDR, 0x48, 0x00);
48 1 I2CWriteByte(HX8824_ADDR, 0x49, 0x00);
49 1 I2CWriteByte(HX8824_ADDR, 0x4A, 0x80);
50 1 I2CWriteByte(HX8824_ADDR, 0x4B, 0x00);
51 1 */
52 1 I2CWriteByte(HX8824_ADDR, 0x14, 0x00);
53 1 I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
54 1 I2CWriteByte(HX8824_ADDR, 0x16, 0x00);
55 1 I2CWriteByte(HX8824_ADDR, 0x17, 0x00);
C51 COMPILER V7.07 HX8824 09/26/2006 08:56:42 PAGE 2
56 1 I2CWriteByte(HX8824_ADDR, 0x19, 0x02);
57 1 I2CWriteByte(HX8824_ADDR, 0xD6, 0x18); //PWM control2 default value
58 1 I2CWriteByte(HX8824_ADDR, 0xD7, 0x12); //PWM control2 default value
59 1 I2CWriteByte(HX8824_ADDR, 0xD8, 0x00); //PWM control2 default value
60 1 I2CWriteByte(HX8824_ADDR, 0xD9, 0x00); //PWM control2 default value
61 1 I2CWriteByte(HX8824_ADDR, 0xDA, 0x00); //PWM control2 default value
62 1 I2CWriteByte(HX8824_ADDR, 0xDB, 0x00); //PWM control2 default value
63 1 //I2CWriteByte(HX8824_ADDR, 0x76, 0x07); // bitwise for 3 channel
64 1 I2CWriteByte(HX8824_ADDR, 0xE3, 0x01); // TCON bypass
65 1
66 1 //***************** Version A************************************************
67 1 /*
68 1 I2CWriteByte(HX8824_ADDR, 0x41, 0x10); // initial Image enhancement
69 1 I2CWriteByte(HX8824_ADDR, 0x42, 0x00);
70 1 I2CWriteByte(HX8824_ADDR, 0x43, 0x80);
71 1 I2CWriteByte(HX8824_ADDR, 0x44, 0x80);
72 1 I2CWriteByte(HX8824_ADDR, 0x45, 0x00);
73 1 I2CWriteByte(HX8824_ADDR, 0x46, 0x00);
74 1 I2CWriteByte(HX8824_ADDR, 0x70, 0x00); // enable dithering
75 1 */
76 1 /*
77 1 I2CWriteByte(HX8824_ADDR, 0x71, 0x5F); // 0x5F dithering mode (78h will cause flicker in 32 gray in
-green?)
78 1 I2CWriteByte(HX8824_ADDR, 0x72, 0x2D); //
79 1 I2CWriteByte(HX8824_ADDR, 0x73, 0x36);
80 1 I2CWriteByte(HX8824_ADDR, 0x74, 0x8D);
81 1 I2CWriteByte(HX8824_ADDR, 0x75, 0x63);
82 1 */
83 1 /*
84 1 I2CWriteByte(HX8824_ADDR, 0x71, 0x78); // 0x5F dithering mode (78h will cause flicker in 32 gray in
-green?)
85 1 I2CWriteByte(HX8824_ADDR, 0x72, 0x2D); //
86 1 I2CWriteByte(HX8824_ADDR, 0x73, 0x36);
87 1 I2CWriteByte(HX8824_ADDR, 0x74, 0x8D);
88 1 I2CWriteByte(HX8824_ADDR, 0x75, 0x63);
89 1 */
90 1
91 1 I2CWriteByte(HX8824_ADDR, 0x71, 0x39); // 0x5F dithering mode (78h will cause flicker in 32 gray in
-green?)
92 1 I2CWriteByte(HX8824_ADDR, 0x72, 0x1B); //
93 1 I2CWriteByte(HX8824_ADDR, 0x73, 0x93);
94 1 I2CWriteByte(HX8824_ADDR, 0x74, 0x39);
95 1 I2CWriteByte(HX8824_ADDR, 0x75, 0x87);
96 1
97 1 //**************** PWM setting ***********************************************
98 1 /*
99 1 I2CWriteByte(HX8824_ADDR, 0xD7, 0x02); // Enable PWM
100 1 I2CWriteByte(HX8824_ADDR, 0xD8, 0x0D); // Enable PWM
101 1 I2CWriteByte(HX8824_ADDR, 0xD9, 0x00); // Enable PWM
102 1 DelayX1ms(10);
103 1 I2CWriteByte(HX8824_ADDR, 0xD6, 0x3E); // Enable PWM
104 1 */
105 1 // Dump to RS232
106 1 //Puts_UART("HX8824 ID="),HexTobyStr((Byte)TestPattern),Puts_UART(byStr),Puts_UART("\r\n");
107 1
108 1
109 1 #if mode6448_8060
// Select source from VGA
bVideo = 0;
S1 = 1;
S2 = 0;
Mode = 0;
C51 COMPILER V7.07 HX8824 09/26/2006 08:56:42 PAGE 3
I2CWriteByte(HX8824_ADDR,0x00, 0x80); // input h size
I2CWriteByte(HX8824_ADDR,0x01, 0x02);
I2CWriteByte(HX8824_ADDR,0x02, 0xE0); // input v size
I2CWriteByte(HX8824_ADDR,0x03, 0x01);
I2CWriteByte(HX8824_ADDR,0x10, 0x1C); // input format select
I2CWriteByte(HX8824_ADDR,0x11, 0x04);
I2CWriteByte(HX8824_ADDR,0x20, 0xCC);
I2CWriteByte(HX8824_ADDR,0x21, 0x0C);
I2CWriteByte(HX8824_ADDR,0x22, 0xFF);
I2CWriteByte(HX8824_ADDR,0x23, 0x0F);
I2CWriteByte(HX8824_ADDR,0x20, 0xCC);
I2CWriteByte(HX8824_ADDR,0x21, 0x0C);
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, 0xD8);
I2CWriteByte(HX8824_ADDR,0xA1, 0x1D);
I2CWriteByte(HX8824_ADDR,0xA2, 0x00);
I2CWriteByte(HX8824_ADDR,0x90, 0xF8);
I2CWriteByte(HX8824_ADDR,0x91, 0x03);
I2CWriteByte(HX8824_ADDR,0x92, 0x48);
I2CWriteByte(HX8824_ADDR,0x93, 0x00);
I2CWriteByte(HX8824_ADDR,0x94, 0x90);
I2CWriteByte(HX8824_ADDR,0x95, 0x00);
I2CWriteByte(HX8824_ADDR,0x96, 0x20);
I2CWriteByte(HX8824_ADDR,0x97, 0x03);
I2CWriteByte(HX8824_ADDR,0x98, 0x92);
I2CWriteByte(HX8824_ADDR,0x99, 0x02);
I2CWriteByte(HX8824_ADDR,0x9A, 0x13);
I2CWriteByte(HX8824_ADDR,0x9B, 0x00);
I2CWriteByte(HX8824_ADDR,0x9C, 0x26);
I2CWriteByte(HX8824_ADDR,0x9D, 0x00);
I2CWriteByte(HX8824_ADDR,0x9E, 0x58);
I2CWriteByte(HX8824_ADDR,0x9F, 0x02);
//***************** PLL ********************************************************
I2CWriteByte(HX8824_ADDR, 0xD0, 0x03); // P1
I2CWriteByte(HX8824_ADDR, 0xD1, 0x04); // P2
I2CWriteByte(HX8824_ADDR, 0xD2, 0x08); // N
I2CWriteByte(HX8824_ADDR, 0xD3, 0x77); // M: 120-1
I2CWriteByte(HX8824_ADDR, 0xD4, 0x00); // M
#endif
159 1 //**************************************************************************************
160 1 #if mode6448_8048
// Select source from VGA
bVideo = 0;
S1 = 1;
S2 = 0;
Mode = 1;
I2CWriteByte(HX8824_ADDR, 0x10, 0x1C);
I2CWriteByte(HX8824_ADDR, 0x11, 0x04);
I2CWriteByte(HX8824_ADDR, 0x20, 0x00);
I2CWriteByte(HX8824_ADDR, 0x21, 0x10);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x0F);
I2CWriteByte(HX8824_ADDR, 0x20, 0xCC);
I2CWriteByte(HX8824_ADDR, 0x21, 0x0C);
I2CWriteByte(HX8824_ADDR, 0x22, 0xFF);
I2CWriteByte(HX8824_ADDR, 0x23, 0x1F);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
C51 COMPILER V7.07 HX8824 09/26/2006 08:56:42 PAGE 4
I2CWriteByte(HX8824_ADDR, 0x25, 0x00);
I2CWriteByte(HX8824_ADDR, 0x24, 0x00);
I2CWriteByte(HX8824_ADDR, 0x25, 0x04);
I2CWriteByte(HX8824_ADDR, 0xA0, 0xe2); // 88 e2
I2CWriteByte(HX8824_ADDR, 0xA1, 0x13); // 17 13
I2CWriteByte(HX8824_ADDR, 0xA2, 0x00);
I2CWriteByte(HX8824_ADDR, 0x00, 0x80);
I2CWriteByte(HX8824_ADDR, 0x01, 0x02);
I2CWriteByte(HX8824_ADDR, 0x02, 0xE0);
I2CWriteByte(HX8824_ADDR, 0x03, 0x01);
I2CWriteByte(HX8824_ADDR, 0x90, 0x20);
I2CWriteByte(HX8824_ADDR, 0x91, 0x04);
I2CWriteByte(HX8824_ADDR, 0x92, 0x3F);
I2CWriteByte(HX8824_ADDR, 0x93, 0x00);
I2CWriteByte(HX8824_ADDR, 0x94, 0x7A);
I2CWriteByte(HX8824_ADDR, 0x95, 0x00);
I2CWriteByte(HX8824_ADDR, 0x96, 0x20);
I2CWriteByte(HX8824_ADDR, 0x97, 0x03);
I2CWriteByte(HX8824_ADDR, 0x98, 0x0D);
I2CWriteByte(HX8824_ADDR, 0x99, 0x02);
I2CWriteByte(HX8824_ADDR, 0x9A, 0x03);
I2CWriteByte(HX8824_ADDR, 0x9B, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9C, 0x20);
I2CWriteByte(HX8824_ADDR, 0x9D, 0x00);
I2CWriteByte(HX8824_ADDR, 0x9E, 0xE0);
I2CWriteByte(HX8824_ADDR, 0x9F, 0x01);
//**************** 0x10-->0x0C or 0x08(DE only, no VS & HS)**********************
// I2CWriteByte(HX8824_ADDR, 0x14, 0x00); // 0x21~0x23 will be ok
// I2CWriteByte(HX8824_ADDR, 0x15, 0x00);
//***************** PLL ********************************************************
I2CWriteByte(HX8824_ADDR, 0xD0, 0x03); // P1
I2CWriteByte(HX8824_ADDR, 0xD1, 0x04); // P2
I2CWriteByte(HX8824_ADDR, 0xD2, 0x08); // N
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -