?? t102osd.lst
字號:
C51 COMPILER V7.50 T102OSD 06/16/2006 15:29:44 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE T102OSD
OBJECT MODULE PLACED IN .\Obj\T102OSD.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Source\OSD\T102OSD.c BROWSE INCDIR(.\Include\;.\Source\;.\Include\Panel\;.\
-Include\GammaTable\) DEFINE(T112) DEBUG OBJECTEXTEND PRINT(.\T102OSD.lst) OBJECT(.\Obj\T102OSD.obj)
line level source
1 #include <reg51.h>
2 #include "common.h"
3 #include "System.h"
4 #include "OSDDraw.h"
5 #include "TwoWire.h"
6 #include "TW10xReg.h"
7 #include "T102OSD.h"
8
9 #ifdef NEW_OSD
#include "font1216.c"
#else
12 #include "T102_Font12W18H.c" // 12W18H
13 //#include "T102_Font8W16H.c" // 8W16H // It's better for Au 3.5".
14 //#include "T102_Font6W16H.c" // 6W16H // It's too small for Au 3.5".
15 #endif
16
17 #define LOGO_ON
18 #ifdef LOGO_ON
19 #define OSDBMP_2BIT_PIXEL 0xf8
20 #define OSDBMP_4BIT_PIXEL 0xb8
21 #define OSDBMP_TYPE OSDBMP_2BIT_PIXEL
22 #define BMP_HPOS (1024-320)/2
23 #define BMP_VPOS (768-76)/2
24
25
26 #include "T102_Logo.c"
27
28 bit OSD_PowerOnLogo_On = 1;
29
30 // define OSD Logo BMP LUT color data
31 code unsigned char OSDLutLogoData[32]={
32 0x33,0x03, //Black f=0 , b=0 0x12, 03
33 0xaa,0x02, //Light Blue f=2 , b=1
34 0x18,0x01, //Dark Blue f=8 , b=4
35 0x1f,0x01, //Dark Blue f=8 , b=4
36 0xff,0x0f, //White f=3
37 0xf6,0x0f, //Dark Brown f=4 , b=2
38 0x08,0x08, //Purple f=5
39 0xa8,0x07, //Light Green f=6 , b=3
40 0x86,0x0f, //Dark Red f=7
41 0x54,0x0f, //Dark Red f=7
42 0x54,0x0f, //Dark Red f=7
43 0x0f,0x0f,
44 0xb9,0x00, //purple
- 6
45 0x44,0x04,
46 0x88,0x08, //grey
47 0xff,0x0f //white
48 };
49 #endif //LOGO_ON
50
51
52 void OSDLogo(void)
53 {
C51 COMPILER V7.50 T102OSD 06/16/2006 15:29:44 PAGE 2
54 1 unsigned int i;
55 1 #ifdef LOGO_ON
56 1 OSDSetRamAddr(FONT_DATA_START_ADDRESS);
57 1 I2CWriteByte(TW101,OSD_CFG_INDEX,OSD_LUT_RAM_DATA);
58 1
59 1
60 1 OSDCfgWr(BW_W,20);
61 1 OSDCfgWr(BW_H,29);
62 1
63 1 twdWr_Burst_A(OSD_RAM_DL);
64 1 for(i=0;i<40*32;i++)
65 1 twdWr_Burst_D(logodata[i]);
66 1 twdWr_Burst_P();
67 1
68 1 OSDCfgWr(OSD_CTRL,0xf8); //2 bits pixel BitMap
69 1 //kenny 20060301 ==================
70 1 #ifdef T116
I2CWriteByte(TW101,0xE2,0x11);
#endif
73 1 //kenny 20060301 ==================
74 1 twdDelay(2000);
75 1 #endif
76 1 }
77
78 void OSDInit(void)
79 {
80 1 unsigned int i,j;
81 1
82 1 OSDCfgWr(OSD_CTRL,0x18); //disable osd and width*1
83 1 OSDSetRamAddr(FONT_DATA_START_ADDRESS);
84 1 OSDCfgWr(CHAR_FONT_SIZE,FONT_SIZE);
85 1 // add by Sherman 06'02'06
86 1 #if (defined T102)|(defined T112)
87 1 if((FONT_SIZE==FONT_SIZE8W16H)|(FONT_SIZE==FONT_SIZE6W16H))
88 1 OSDCfgWr(0x0f,0x40);
89 1 #endif
90 1 //
91 1 OSDCfgWr(CHAR_RAM_BASE_A,CHAR_MAIN_MENU_START); //To setup character index start address.
92 1 //If start address is 0x9c0,
93 1 //You have get ((0x9c0 >> 5) & 0x7f) to store it
94 1 OSDCfgWr(CHAR_RAM_END_A,CHAR_RAM_END); //This is to set index end address.
95 1 OSDCfgWr(BLINK_CTRL,0x09);
96 1 OSDCfgWr(ALPHA_BLD_CTRL,0x84);
97 1 OSDLoadColor();
98 1 OSDSetRamAddr(FONT_DATA_START_ADDRESS);
99 1 twdWr_Burst_A(OSD_RAM_DL);
100 1
101 1 //Below is re-writted // chagne by Sherman 06'02'06
102 1
103 1 if((FONT_SIZE==FONT_SIZE8W16H)|(FONT_SIZE==FONT_SIZE6W16H)){
104 2 for(j=0;j<(TOTAL_FONT_NUM/2)+1;j++)
105 2 for(i=0; i<FONT_HEIGHT; i++){
106 3 twdWr_Burst_D(AllFonts[2*j+1][2*i+1]);
107 3 twdWr_Burst_D(AllFonts[2*j][2*i+1]);
108 3 }
109 2 }else{
110 2 for(j=0;j<TOTAL_FONT_NUM;j++)
111 2 for(i=0; i<FONT_HEIGHT; i++){
112 3 twdWr_Burst_D(AllFonts[j][2*i]);
113 3 twdWr_Burst_D(AllFonts[j][2*i+1]);
114 3 }
115 2 }
C51 COMPILER V7.50 T102OSD 06/16/2006 15:29:44 PAGE 3
116 1
117 1 //0x400==1024;
118 1 for(i=(TOTAL_FONT_NUM)*FONT_HEIGHT; i<0xc00; i++){
119 2 twdWr_Burst_D(0x00);
120 2 twdWr_Burst_D(0x00);
121 2 }
122 1 twdWr_Burst_P();
123 1
124 1 for(i=0;i<OSD_LINE_NUM;i++){
125 2 OSDCleanLine(0,i,0,31);
126 2 OSDSetLineAttribute(i,0x80);
127 2 }
128 1
129 1 }
130
131 void OSDShowLine(uCHAR *string,uCHAR x,uCHAR y,uCHAR cColor,uCHAR cLength)
132 {
133 1 uCHAR c;
134 1 if((x < 30) && ( y < OSD_LINE_NUM)){
135 2 OSDSetRamAddr(MENU_RAM_START_ADDRESS+((int)y << 5)+x);
136 2 twdWr_Burst_A(OSD_RAM_DL); // Write OSD index
137 2 while((*string) != EOL && (x < cLength)){
138 3 c=*string++;
139 3 if(c>0x40) // Character
140 3 twdWr_Burst_D(c-IndexCharacterOffset);
141 3 else if(c>=0x30) // number
142 3 twdWr_Burst_D(c-IndexNumOffset);
143 3 else
144 3 twdWr_Burst_D(c);
145 3
146 3 twdWr_Burst_D(cColor );
147 3 x++;
148 3 }
149 2 }
150 1 twdWr_Burst_P();
151 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 514 ----
CONSTANT SIZE = 2952 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 14
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -