📄 vp.lst
字号:
YUV_SetContrast(tsEYD.bContrast);
YUV_SetSaturation(tsEYD.bSaturation);
YUV_SetHue(tsEYD.bHue);
YUV_SetSharpness(tsEYD.bSharpness);
/* ....................................
Video Processor
.................................... */
VP_SetBlackLevel(tsEGD.bBlackLevel);
VP_SetBrightness(tsEGD.bBrightness);
VP_SetContrast(tsEGD.bContrast);
// To adjust VP
VP_SetImageFilter(tsEGD.bImage_Filter);
// To restore VP TCON mode !
VP_SetTCON_Mode(tsEGD.bTCON_Mode);
} // VP_SetColorStandard
#endif
344
345
346 #if (VP_SET_BRIGHTNESS)
347 /* -------------------------------------------------------------------
348 Name: VP_SetBrightness -
349 Purpose: This function sets the VP Brightness.
350 Passed: 0x00..0xFF
351 Returns: None.
352 Notes: [1]63
353 ------------------------------------------------------------------- */
354 void VP_SetBrightness (UB8 bBrightness)
355 {
356 1 BITEK_TxByte(VP_MAD, VP_07C_BRIGHTNESS_R, bBrightness);
357 1 BITEK_TxByte(VP_MAD, VP_07D_BRIGHTNESS_G, bBrightness);
358 1 BITEK_TxByte(VP_MAD, VP_07E_BRIGHTNESS_B, bBrightness);
359 1 } // VP_SetBrightness
360 #endif
361
362
363 #if (VP_SET_CONTRAST)
364 /* -------------------------------------------------------------------
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 7
365 Name: VP_SetContrast -
366 Purpose: This function sets the VP Contrast.
367 Passed: 0x00..0xFF
368 Returns: None.
369 Notes: [1]63
370 ------------------------------------------------------------------- */
371 void VP_SetContrast (UB8 bContrast)
372 {
373 1 BITEK_TxByte(VP_MAD, VP_07F_CONTRAST_R, bContrast);
374 1 BITEK_TxByte(VP_MAD, VP_080_CONTRAST_G, bContrast);
375 1 BITEK_TxByte(VP_MAD, VP_081_CONTRAST_B, bContrast);
376 1 } // VP_SetContrast
377 #endif
378
379
380 #if (VP_SET_IMAGE_FILTER)
381 /* -------------------------------------------------------------------
382 Name: VP_SetImageFilter -
383 Purpose: To set Image Filter.
384 Passed:
385 0..8 (High smoothness..Low smoothness, Bypass, Low sharpness,..High sharpness)
386 0..3 = Smoothness
387 4 = Bypass
388 5..8 = Sharpness
389 Returns:
390 Notes: [1]67
391 ------------------------------------------------------------------- */
392 void VP_SetImageFilter (UB8 bImageFilter)
393 {
394 1 UB8 bData;
395 1
396 1
397 1 if (bImageFilter == IMAGE_FILTER_NORMAL)
398 1 {
399 2 // Bypass
400 2 // 0xxx xxxx
401 2 bData = BITEK_RxByte(VP_MAD, VP_08B_IMAGE_ATTR) & ~VP_MASK_FILTER_EN;
402 2 }
403 1 else
404 1 {
405 2 bData = BITEK_RxByte(VP_MAD, VP_08B_IMAGE_ATTR) & ~VP_MASK_FILTER_TYPE;
406 2 bData |= VP_MASK_FILTER_EN;
407 2
408 2
409 2 if (bImageFilter < IMAGE_FILTER_NORMAL)
410 2 {
411 3 // Smothness
412 3 // 1000 xxxx
413 3 // 1011 xxxx
414 3 bData = bData | ((3 - bImageFilter) << 4);
415 3 }
416 2 else if (bImageFilter > IMAGE_FILTER_NORMAL)
417 2 {
418 3 // Sharpness
419 3 // 1100 xxxx
420 3 // 1111 xxxx
421 3 bData = bData | ((bImageFilter - 1) << 4);
422 3 }
423 2 }
424 1
425 1 BITEK_TxByte(VP_MAD, VP_08B_IMAGE_ATTR, bData);
426 1 } /* VP_SetImageFilter */
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 8
427 #endif
428
429
430 #if (VP_SET_PWM_DUTY)
/* -------------------------------------------------------------------
Name: VP_SetPWM_DUTY -
Purpose: This function sets the VP PWM Duty.
Passed:
Returns: None.
Notes: [1]74
------------------------------------------------------------------- */
void VP_SetPWM_DUTY (
UB8 bPWM, // 1..4
UW16 wDUTY // 0..511
)
{
switch (bPWM)
{
case 1:
BITEK_TxWord(VP_MAD, VP_0E20E3_PWM1_DUTY, wDUTY);
break;
case 2:
BITEK_TxWord(VP_MAD, VP_0E80E9_PWM2_DUTY, wDUTY);
break;
case 3:
BITEK_TxByte(VP_MAD, VP_0EC_PWM3_DUTY, wDUTY);
break;
case 4:
BITEK_TxByte(VP_MAD, VP_0EE_PWM4_DUTY, wDUTY);
break;
} // switch
} // VP_SetPWM_DUTY
#endif
464
465
466 #if (VP_SET_PWM_FREQ)
/* -------------------------------------------------------------------
Name: VP_SetPWM_FREQ -
Purpose: This function sets the VP PWM Frequency.
Passed:
Returns: None.
Notes: [1]74
------------------------------------------------------------------- */
void VP_SetPWM_FREQ (
UB8 bPWM, // 1..4
UW16 wFREQ // 0..511
)
{
UB8 bData;
switch (bPWM)
{
case 1:
BITEK_TxByte(VP_MAD, VP_0E00E1_PWM1_FREQ, wFREQ);
bData = BITEK_RxByte(VP_MAD, VP_0E1_PWM1_ATTR) & ~VP_MASK_PWM1_FREQ_MSB;
wFREQ >>= 4; // 8 -> 4
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 9
wFREQ &= VP_MASK_PWM1_FREQ_MSB;
BITEK_TxByte(VP_MAD, VP_0E1_PWM1_ATTR, bData | wFREQ);
break;
case 2:
BITEK_TxByte(VP_MAD, VP_0E50E7_PWM2_FREQ, wFREQ);
bData = BITEK_RxByte(VP_MAD, VP_0E7_PWM2_ATTR) & ~VP_MASK_PWM2_FREQ_MSB;
wFREQ >>= 4; // 8 -> 4
wFREQ &= VP_MASK_PWM2_FREQ_MSB;
BITEK_TxByte(VP_MAD, VP_0E7_PWM2_ATTR, bData | wFREQ);
break;
case 3:
BITEK_TxByte(VP_MAD, VP_0EB_PWM3_FREQ, wFREQ);
break;
case 4:
BITEK_TxByte(VP_MAD, VP_0ED_PWM4_FREQ, wFREQ);
break;
} // switch
} // VP_SetPWM_FREQ
#endif
512
513
514 #if (VP_SET_PWM_REF)
/* -------------------------------------------------------------------
Name: VP_SetPWM_REF -
Purpose: This function sets the VP PWM REF.
Passed:
Returns: None.
Notes: [1]86
------------------------------------------------------------------- */
void VP_SetPWM_REF (
UB8 bPWM, // 1..2
UW16 wREF // 0..1023
)
{
UB8 bData;
switch (bPWM)
{
case 1:
// LSB
BITEK_TxByte(VP_MAD, VP_0DF0E1_PWM1_REF, wREF);
bData = BITEK_RxByte(VP_MAD, VP_0E1_PWM1_ATTR) & ~VP_MASK_PWM1_REF_MSB;
wREF >>= 8; // 8 -> 0
wREF &= VP_MASK_PWM1_REF_MSB;
BITEK_TxByte(VP_MAD, VP_0E1_PWM1_ATTR, bData | wREF);
break;
case 2:
BITEK_TxByte(VP_MAD, VP_0E40E7_PWM2_REF, wREF);
bData = BITEK_RxByte(VP_MAD, VP_0E7_PWM2_ATTR) & ~VP_MASK_PWM2_REF_MSB;
wREF >>= 8; // 8 -> 0
wREF &= VP_MASK_PWM2_REF_MSB;
BITEK_TxByte(VP_MAD, VP_0E7_PWM2_ATTR, bData | wREF);
break;
} // switch
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 10
} // VP_SetPWM_REF
#endif
554
555
556 #if (VP_SET_TCON_MODE)
557 /* -------------------------------------------------------------------
558 Name: VP_SetTCON_Mode -
559 Purpose: To set the video processor TCON Mode.
560 Passed:
561 UB8 bTCON_Mode TCON_MODE_RU or
562 TCON_MODE_LU or
563 TCON_MODE_LD or
564 TCON_MODE_RD
565 Returns: None.
566 Notes:
567 ------------------------------------------------------------------- */
568 void VP_SetTCON_Mode (UB8 bTCON_Mode)
569 {
570 1 UB8 b24;
571 1
572 1
573 1 b24 = BITEK_RxByte(VP_MAD, VP_024_OUTPUT_DATAPATH) & VP_MASK_ACTIVE_TOTAL;
574 1
575 1 switch (bTCON_Mode)
576 1 {
577 2 case TCON_MODE_RU:
578 2 BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH, b24 | 0x0F);
579 2 BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO, 0x05);
580 2 SPI_TxByte(0x05, 0x13);
581 2 break;
582 2
583 2 case TCON_MODE_LU:
584 2 BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH, b24 | 0x8B);
585 2 BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO, 0x15);
586 2 SPI_TxByte(0x05, 0x12);
587 2 break;
588 2
589 2 case TCON_MODE_LD:
590 2 BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH, b24 | 0x53);
591 2 BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO, 0x15);
592 2 SPI_TxByte(0x05, 0x10);
593 2 break;
594 2
595 2 case TCON_MODE_RD:
596 2 BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH, b24 | 0xC3);
597 2 BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO, 0x15);
598 2 SPI_TxByte(0x05, 0x11);
599 2 break;
600 2 } // switch
601 1 } // VP_SetTCON_Mode
602 #endif
603
604
605 #if (VP_SET_TESTPATTERN)
/* -------------------------------------------------------------------
Name: VP_SetTestPattern -
Purpose: VP Background and Test Pattern.
Passed:
Returns: None
Notes: [1]40
------------------------------------------------------------------- */
C51 COMPILER V7.50 VP 02/05/2007 16:33:26 PAGE 11
void VP_SetTestPattern (
UB8 bColorR,
UB8 bColorG,
UB8 bColorB,
UB8 bPatternType, // Pattern Type
UB8 bMode // Freerun/Background
)
{
UB8 b40;
b40 = BITEK_RxByte(VP_MAD, VP_040_TESTPAT_ATTR) & (VP_MASK_PATTERN_HV | VP_MASK_PATTERN_DIR);
BITEK_TxByte(VP_MAD, VP_03C_TESTPAT_R, bColorR);
BITEK_TxByte(VP_MAD, VP_03D_TESTPAT_G, bColorG);
BITEK_TxByte(VP_MAD, VP_03E_TESTPAT_B, bColorB);
BITEK_TxByte(VP_MAD, VP_040_TESTPAT_ATTR, b40 | bMode | bPatternType);
} /* VP_SetTestPattern */
#endif
633
634
635
636 /* **********************************************************************
637
638 Description:
639
640 ********************************************************************** */
641
642 /* %% End Of File %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 466 ----
CONSTANT SIZE = 161 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 11
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 + -