📄 modehandle.lst
字号:
511
512 void GoToCompositeSync(void)
513 {
514 1 HVI_REG = 0xA0; // HVI_REG
515 1 WriteIIC_HW(Scaler_Addr,0x86,0xc0);
516 1 WriteIIC_HW(Scaler_Addr,0x87,0x80);
517 1 WriteIIC_HW(Scaler_Addr,0xd5,0x00);
518 1 WriteIIC_HW(Scaler_Addr,0xe6,0x03);
519 1 WriteIIC_HW(Scaler_Addr,0xf8,DTF8);
520 1 if(Use_TCON != 0){
521 2 WriteIIC_HW(Scaler_Addr,0xfe,0xc1);
522 2 }
523 1 else{
524 2 WriteIIC_HW(Scaler_Addr,0xfe,0xc0);
525 2 }
526 1 SyncMode = 1;
527 1 if((flag3 & BIT_2) != 0x00){
528 2 printf("Composite Sync\r\n");
529 2 }
530 1 }
531
532 void CheckSOG(void)
533 {
534 1 WriteIIC_HW(Scaler_Addr,0x86,0xe0);
535 1 WriteIIC_HW(Scaler_Addr,0x87,0x00);
536 1 WriteIIC_HW(Scaler_Addr,0xd5,0x04);
537 1 WriteIIC_HW(Scaler_Addr,0xe6,0x7f);
538 1 WriteIIC_HW(Scaler_Addr,0xf8,(DTF8|BIT_7));
539 1 if(Use_TCON != 0){
540 2 WriteIIC_HW(Scaler_Addr,0xfe,0xd1);
541 2 }
542 1 else{
543 2 WriteIIC_HW(Scaler_Addr,0xfe,0xd0);
544 2 }
545 1 SYNC_REG = 0x40;
546 1 Sleep(40);
547 1 Timer1 = 40;
548 1 H_SYNC = 0;
549 1 V_SYNC = 0;
550 1 while(Timer1 != 0){
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 10
551 2 if((PortC & BIT_2) == 0){
552 3 V_SYNC++;
553 3 }
554 2 else{
555 3 H_SYNC++;
556 3 }
557 2 }
558 1 H_SYNC >>= 2;
559 1 SYNC_REG = 0x60;
560 1 if(H_SYNC > V_SYNC){
561 2 HVI_REG = 0x20; // HVI_REG
562 2 SyncMode = 2;
563 2 if((flag3 & BIT_2) != 0x00){
564 3 printf("Sync on green\r\n");
565 3 }
566 2 }
567 1 else{
568 2 GoToSeparateSync();
569 2 }
570 1 }
571
572 void NoSync(void)
573 {
574 1 if((flag1 & BIT_3) == 0){
575 2 OSD_Control &= ~BIT_0;
576 2 WriteIIC_HW(Scaler_Addr,0x95,OSD_Control);
577 2 flag1 |= BIT_3;
578 2 flag2 &= 0xe1;
579 2 flag3 &= ~BIT_1; //in range
580 2 BackLightOff();
581 2 ForceToBackground(0); //Set force to background
582 2 PoSvTimer = 500;
583 2 if((flag3 & BIT_2) != 0x00){
584 3 printf("NoSync\r\n");
585 3 }
586 2 }
587 1 else if((PoSvTimer < 300)&&(PoSvTimer > 0)&&((flag2 & BIT_1)==0)){
588 2 // else if((PoSvTimer == 0)&&((flag2 & BIT_1)==0)){
589 2 flag2 |= BIT_1;
590 2 ShowNoSync();
591 2 if((PortC & BIT_0) == 0){
592 3 BackLightOn();
593 3 }
594 2 }
595 1 }
596
597 void SetMinMax(void)
598 {
599 1 #if 0
code unsigned short TypClk[]={
800,900,832,1040,1152,1344,1600,1800,1688,2160,1688,1688,1688,1056
};
unsigned short i,k;
unsigned char w;
if(ModePoint >= UserModeSt){
// Set Minimum and Maximum
i = 0x106 + (ModePoint * 8);
i = Read24C16(i);
HP_Max = TypClk[i] - H_Act;
if(HP_Start > HP_Max){
HP_Max = HP_Start;
}
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 11
HP_Min = (unsigned char)((TypClk[i] * 3) / 100);
if(HP_Start < HP_Min){
HP_Min = HP_Start;
}
if((HP_Start + H_Act) < (TypClk[i] - 50)){
Clk_Min = TypClk[i] - 50;
Clk_Max = TypClk[i] + 50;
}
else{
Clk_Min = HP_Start + H_Act;
Clk_Max = Clk_Min + 100;
}
}
else{
// Set Minimum and Maximum
i = 0x104 + (ModePoint * 8);
k = MCU_DataMap[i];
i++;
k <<= 8;
k += MCU_DataMap[i];
w = HPW_REG;
w = (unsigned long)H_SYNC * k / (120000 / w);
// w = (unsigned long)H_SYNC * k / (140000 / w);
HP_Max = k - H_Act - w;
// HP_Max = k - H_Act;
if(HP_Start > HP_Max){
HP_Max = HP_Start;
}
HP_Min = (unsigned char)((k * 3) / 100);
if(HP_Start < HP_Min){
HP_Min = HP_Start;
}
if((HP_Start + H_Act) < (k - 50)){
Clk_Min = k - 50;
Clk_Max = k + 50;
}
else{
Clk_Min = HP_Start + H_Act;
Clk_Max = Clk_Min + 100;
}
}
#else
655 1 unsigned short i,k;
656 1 unsigned char w;
657 1 // Set Minimum and Maximum
658 1 i = 0x290 + (ModePoint << 1);
659 1 k = Read24C16(i);
660 1 i++;
661 1 k <<= 8;
662 1 k += Read24C16(i);
663 1 w = HPW_REG;
664 1 w = (unsigned long)H_SYNC * k / (120000 / w);
665 1 // w = (unsigned long)H_SYNC * k / (140000 / w);
666 1 HP_Max = k - H_Act - w;
667 1 // HP_Max = k - H_Act;
668 1 if(HP_Start > HP_Max){
669 2 HP_Max = HP_Start;
670 2 }
671 1 HP_Min = (unsigned char)((k * 3) / 100);
672 1 if(HP_Start < HP_Min){
673 2 HP_Min = HP_Start;
674 2 }
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 12
675 1 if((HP_Start + H_Act) < (k - 50)){
676 2 Clk_Min = k - 50;
677 2 Clk_Max = k + 50;
678 2 }
679 1 else{
680 2 Clk_Min = HP_Start + H_Act;
681 2 Clk_Max = Clk_Min + 100;
682 2 }
683 1 if((flag3 & BIT_2) != 0x00){
684 2 printf("HPW = %d\r\n",(unsigned short)w);
685 2 printf("HP_Max = %d\r\n",HP_Max);
686 2 printf("HP_Min = %d\r\n",(unsigned short)HP_Min);
687 2 printf("Clk_Max = %d\r\n",Clk_Max);
688 2 printf("Clk_Min = %d\r\n",Clk_Min);
689 2 }
690 1 #endif
691 1 }
692
693 void CheckModeChange(void)
694 {
695 1 #if 0
if(((INTHV_FLG & 0x07) != 0)||((MUTE_CTRL & 0x30) != 0x30)){
BackLightOff();
flag2 |= BIT_0;
H_SYNC_Temp = 0xffff;
V_SYNC_Temp = 0xffff;
}
#else
703 1 unsigned char value,temp;
704 1 unsigned long Freq;
705 1 if(PowerStatus > 0x80)
706 1 return;
707 1 if(((INTHV_FLG & 0x07) != 0)||((MUTE_CTRL & 0x30) != 0x30)){
708 2 BackLightOff();
709 2 flag2 |= BIT_0;
710 2 H_SYNC_Temp = 0xffff;
711 2 V_SYNC_Temp = 0xffff;
712 2 return;
713 2 }
714 1
715 1 flag1 |= BIT_0;
716 1 //V_SYNC=xx.xHz
717 1 temp = VCNT_LB;
718 1 value = VCNT_HB;
719 1 if((value & BIT_7) != 0){
720 2 V_SYNC = 0;
721 2 flag1 &= ~BIT_0;
722 2 }
723 1 else{
724 2 V_SYNC = value & 0x3f;
725 2 V_SYNC <<= 8;
726 2 V_SYNC = V_SYNC | temp;
727 2 if((V_SYNC == 0x3fff)||(V_SYNC == 0)){
728 3 V_SYNC = 0;
729 3 flag1 &= ~BIT_0;
730 3 }
731 2 else{
732 3 Freq = (unsigned long)12500000 / V_SYNC + 5;
733 3 V_SYNC = Freq / 10;
734 3 }
735 2 }
736 1 if(V_SYNC_Temp > V_SYNC){
C51 COMPILER V7.50 MODEHANDLE 03/18/2008 22:04:55 PAGE 13
737 2 if((V_SYNC_Temp - V_SYNC) > 3){
738 3 BackLightOff();
739 3 flag2 |= BIT_0;
740 3 H_SYNC_Temp = 0xffff;
741 3 V_SYNC_Temp = 0xffff;
742 3 return;
743 3 }
744 2 }
745 1 else{
746 2 if((V_SYNC - V_SYNC_Temp) > 3){
747 3 BackLightOff();
748 3 flag2 |= BIT_0;
749 3 H_SYNC_Temp = 0xffff;
750 3 V_SYNC_Temp = 0xffff;
751 3 return;
752 3 }
753 2 }
754 1 #endif
755 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3336 ----
CONSTANT SIZE = 409 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 23
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -