📄 lcd_osd_rel.lst
字号:
252 1 Data[5] = 0x30;
253 1 Data[6] = 0;
254 1 RTDWrite(Data);
255 1
256 1 for (row = 1; row <= length; row++)
257 1 {
258 2 Data[4] = col + row;
259 2
260 2 if (bound)
261 2 {
262 3 if (bound >= range)
263 3 {
264 4 Data[5] = 0x37;
265 4 bound = bound - range;
266 4 }
267 3 else
268 3 {
269 4 color = (bound << 4) / range;
270 4 bound = 0;
271 4
272 4 if (4 > color)
273 4 Data[5] = 0x32;
274 4 else if (7 > color)
275 4 Data[5] = 0x33;
276 4 else if (10 > color)
277 4 Data[5] = 0x34;
278 4 else if (13 > color)
279 4 Data[5] = 0x35;
280 4 else
281 4 Data[5] = 0x36;
282 4 }
283 3 }
284 2 else
285 2 {
286 3 Data[5] = 0x31;
287 3 }
288 2
289 2 RTDWrite(Data);
290 2 }
291 1
292 1 range = value / 10;
293 1 row = value - (range * 10); // x1
294 1 color = range / 10; // x100
295 1 range = range - (color * 10); // x10
C51 COMPILER V7.50 LCD_OSD_REL 07/28/2008 16:10:58 PAGE 6
296 1
297 1 row = row + _0_;
298 1 range = (range || color) ? range + _0_ : 0x00;
299 1 color = color ? color + _0_ : 0x00;
300 1
301 1 // Right Border, Space and Number
302 1 Data[0] = 8;
303 1 Data[1] = N_INC;
304 1 Data[2] = OSD_DATA_92;
305 1 Data[3] = 0x38; // Right Border
306 1 Data[4] = color; // Number x100
307 1 Data[5] = range; // Number x10
308 1 Data[6] = row; // Number x1
309 1 Data[7] = 0x00; // Space
310 1 Data[8] = 0;
311 1 RTDWrite(Data);
312 1 }
313
314 void OSD_Opening(void)
315 {
316 1 #if (1)
317 1
318 1 RTDCodeW(OSD_Enable);
319 1
320 1 #else
// For OSD animetion
RTDCodeW(Palette_Open);
RTDCodeW(Palette_1);
RTDCodeW(OSD_Enable);
Delay_Xms(16);
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
RTDCodeW(Palette_2);
Delay_Xms(16);
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
RTDCodeW(Palette_3);
Delay_Xms(28);
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
RTDCodeW(Palette_4);
Delay_Xms(28);
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
RTDCodeW(Palette_5);
Delay_Xms(28);
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
RTDCodeW(Palette_6);
Delay_Xms(28);
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
RTDCodeW(Palette_7);
RTDCodeW(Palette_Close);
#endif
356 1 }
357
C51 COMPILER V7.50 LCD_OSD_REL 07/28/2008 16:10:58 PAGE 7
358 void OSD_Ending(void)
359 {
360 1 #if (0)
// For OSD animetion
unsigned char ucTemp;
// First, clear debug information drawn by OSD_Show_Check()
OSD_Line(13, 2, 24, 0x00, 0);
OSD_Line(13, 2, 24, 0x00, 1);
// Close unused window
OSD_Window(0, 0, 0, 0, 0, 0, 0);
OSD_Window(1, 0, 0, 0, 0, 0, 0);
OSD_Window(2, 0, 0, 0, 0, 0, 0);
OSD_Line(11, 2, 24, 0x00, 0);
OSD_Line(11, 2, 24, 0x00, 1);
for (ucTemp = 0; ucTemp < 5; ucTemp ++)
{
OSD_Line(ucTemp, 2, 24, 0x00, 0); // Attribute
OSD_Line(ucTemp, 2, 24, 0x00, 1); // Display
OSD_Line(10 - ucTemp, 2, 24, 0x00, 0); // Attribute
OSD_Line(10 - ucTemp, 2, 24, 0x00, 1); // Display
OSD_Window(3, ucTemp + 1, 9 - ucTemp, 2, 25,
OSD_WINDOW_ENABLE | OSD_WINDOW_SHADOWING, COLOR_CYAN); // Main OSD window
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
}
OSD_Line(5, 2, 24, 0x00, 0); // Attribute
OSD_Line(5, 2, 24, 0x00, 1); // Display
for (ucTemp = 0; ucTemp < 12; ucTemp += 2)
{
OSD_Window(3, 5, 5, ucTemp + 3, 23 - ucTemp,
OSD_WINDOW_ENABLE | OSD_WINDOW_SHADOWING, COLOR_CYAN);
Wait_For_Event(EVENT_DEN_STOP); // Wait for Frame End
}
#endif
402 1 }
403
404 void Show_Mode(void)
405 {
406 1 OSD_Line(11, 2, 24, 0x00, 1); // Clear old characters
407 1
408 1 switch (ucMode_Curr)
409 1 {
410 2 case MODE_NOSIGNAL: // NO SIGNAL
411 2
412 2 OSD_Line(11, 2, 24, CHINESE == (stGUD1.FUNCTION & 0x07) ? 0x80 | COLOR_BLUE : COLOR_BLUE, 0);
413 2
414 2 if ((SOURCE_VGA == (stGUD1.INPUT_SOURCE & 0x07)) && (VGA_ONLINE != bVGA_CONNECT))
415 2 RTDCodeW((unsigned char *)OSD_HINT_TABLE[0][stGUD1.FUNCTION & 0x07]);
416 2 else
417 2 RTDCodeW((unsigned char *)OSD_HINT_TABLE[1][stGUD1.FUNCTION & 0x07]);
418 2 break;
419 2
C51 COMPILER V7.50 LCD_OSD_REL 07/28/2008 16:10:58 PAGE 8
420 2 case MODE_UNDEFINED0:
421 2 case MODE_UNDEFINED1:
422 2 case MODE_NOSUPPORT:
423 2
424 2 OSD_Line(11, 2, 24, CHINESE == (stGUD1.FUNCTION & 0x07) ? 0x80 | COLOR_BLUE : COLOR_BLUE, 0);
425 2
426 2 RTDCodeW((unsigned char *)OSD_HINT_TABLE[2][stGUD1.FUNCTION & 0x07]);
427 2 break;
428 2
429 2 case MODE_VIDEO60HZ: // NTSC 60HZ
430 2 OSD_Line(11, 2, 24, COLOR_BLUE, 0); // Set characters to blue
431 2 RTDCodeW(Remark_Mode);
432 2 switch(ucAV_Mode)
433 2 {
434 3 case 0x01: RTDCodeW(Remark_V60_0); break;
435 3 case 0x11: RTDCodeW(Remark_V60_1); break;
436 3 case 0x21: RTDCodeW(Remark_V60_2); break;
437 3 case 0x31: RTDCodeW(Remark_V60_3); break;
438 3 case 0x41: RTDCodeW(Remark_V60_4); break;
439 3 }
440 2 break;
441 2 case MODE_VIDEO50HZ: // PAL 50HZ
442 2 OSD_Line(11, 2, 24, COLOR_BLUE, 0); // Set characters to blue
443 2 RTDCodeW(Remark_Mode);
444 2 switch(ucAV_Mode)
445 2 {
446 3 case 0x02: RTDCodeW(Remark_V50_0); break;
447 3 case 0x12: RTDCodeW(Remark_V50_1); break;
448 3 case 0x22: RTDCodeW(Remark_V50_2); break;
449 3 case 0x32: RTDCodeW(Remark_V50_3); break;
450 3 case 0x03: RTDCodeW(Remark_V50_5); break;
451 3 }
452 2 break;
453 2
454 2 case MODE_YUV60HZ:
455 2 case MODE_YUV50HZ:
456 2 break;
457 2
458 2 default :
459 2 OSD_Line(11, 2, 24, COLOR_BLUE, 0); // Set characters to blue
460 2 {
461 3 unsigned int usHwid;
462 3 unsigned char ucTemp;
463 3
464 3 usHwid = usIPH_ACT_WID;
465 3
466 3 if (SOURCE_VGA == (stGUD1.INPUT_SOURCE & 0x07))
467 3 {
468 4 if (MODE_1600x1200x60HZ == ucMode_Curr)
469 4 {
470 5 usHwid = 1600;
471 5 }
472 4 else
473 4 {
474 5 if (MODE_1600x1200x60HZ > ucMode_Curr)
475 5 {
476 6 if (MODE_1280x0960x60HZ <= ucMode_Curr)
477 6 usHwid = 1280;
478 6 else if (MODE_1152x0864x75HZ <= ucMode_Curr)
479 6 usHwid = 1152;
480 6 }
481 5 else
C51 COMPILER V7.50 LCD_OSD_REL 07/28/2008 16:10:58 PAGE 9
482 5 {
483 6 if (MODE_USER1600x1200 == ucMode_Curr)
484 6 usHwid = 1600;
485 6 else if (MODE_USER1280x960 <= ucMode_Curr)
486 6 usHwid = 1280;
487 6 else if (MODE_USER1152x864 <= ucMode_Curr)
488 6 usHwid = 1152;
489 6 }
490 5 }
491 4 }
492 3
493 3 RTDCodeW(Remark_Mode);
494 3
495 3 Data[0] = 12;
496 3 Data[1] = N_INC;
497 3 Data[2] = OSD_DATA_92;
498 3
499 3 ucTemp = usHwid / 100;
500 3
501 3 if (10 <= ucTemp)
502 3 {
503 4 Data[3] = _1_;
504 4 Data[4] = ucTemp - 10 + _0_;
505 4 }
506 3 else
507 3 {
508 4 Data[3] = 0;
509 4 Data[4] = ucTemp + _0_;
510 4 }
511 3
512 3 ucTemp = usHwid - ((unsigned int)100 * ucTemp);
513 3
514 3 Data[5] = ucTemp / 10;
515 3 Data[6] = ucTemp - (10 * Data[5]) + _0_;
516 3 Data[5] = Data[5] + _0_;
517 3 Data[7] = _X_;
518 3
519 3 ucTemp = usIPV_ACT_LEN / 100;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -