📄 dp_rx_drv.lst
字号:
852 2 case STATE_CHK_LINK:
853 2 B_puts("to sys state STATE_CHK_LINK");
854 2 break;
855 2 case STATE_WAIT_VIDEO:
856 2 B_puts("to sys state STATE_WAIT_VIDEO");
C51 COMPILER V7.50 DP_RX_DRV 10/03/2008 17:53:10 PAGE 15
857 2 break;
858 2 case STATE_PLAY_BACK:
859 2 B_puts("to sys state STATE_PLAY_BACK");
860 2 break;
861 2 default:
862 2 break;
863 2 }
864 1 }
865 void DP_RX_UnMute_Vid(void)
866 {
867 1 BYTE cv;
868 1
869 1 DP_RX_ReadI2C_RX0(SYSTEM_CTRL_3, &cv);
870 1 DP_RX_WriteI2C_RX0(SYSTEM_CTRL_3, (cv & 0xef));
871 1
872 1 B_puts("DP_RX: Un-mute video.");
873 1 }
874
875 void DP_RX_Mute_Vid(void)
876 {
877 1 BYTE cv;
878 1
879 1 DP_RX_ReadI2C_RX0(SYSTEM_CTRL_3, &cv);
880 1 DP_RX_WriteI2C_RX0(SYSTEM_CTRL_3, (cv | 0x10));
881 1
882 1 B_puts("DP_RX: Video is muted.");
883 1 }
884
885 void DP_RX_LVDS_Output_Mapping(BYTE to_hw_lvds_channel, BYTE from_rx_internal_channel)
886 {
887 1 BYTE c;
888 1 switch(to_hw_lvds_channel)
889 1 {
890 2 case 0:
891 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_0_1, &c);
892 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_0_1, c & 0x0f | (from_rx_internal_channel << 4));
893 2 break;
894 2 case 1:
895 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_0_1, &c);
896 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_0_1, c & 0xf0 | from_rx_internal_channel);
897 2 break;
898 2 case 2:
899 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_2_3, &c);
900 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_2_3, c & 0x0f | (from_rx_internal_channel << 4));
901 2 break;
902 2 case 3:
903 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_2_3, &c);
904 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_2_3, c & 0xf0 | from_rx_internal_channel);
905 2 break;
906 2 case 4:
907 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_4_5, &c);
908 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_4_5, c & 0x0f | (from_rx_internal_channel << 4));
909 2 break;
910 2 case 5:
911 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_4_5, &c);
912 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_4_5, c & 0xf0 | from_rx_internal_channel);
913 2 break;
914 2 case 6:
915 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_6_7, &c);
916 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_6_7, c & 0x0f | (from_rx_internal_channel << 4));
917 2 break;
918 2 case 7:
C51 COMPILER V7.50 DP_RX_DRV 10/03/2008 17:53:10 PAGE 16
919 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_6_7, &c);
920 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_6_7, c & 0xf0 | from_rx_internal_channel);
921 2 break;
922 2 case 8:
923 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_8_9, &c);
924 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_8_9, c & 0x0f | (from_rx_internal_channel << 4));
925 2 break;
926 2 case 9:
927 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_8_9, &c);
928 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_8_9, c & 0xf0 | from_rx_internal_channel);
929 2 break;
930 2 case 10:
931 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_10_11, &c);
932 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_10_11, c & 0x0f | (from_rx_internal_channel << 4));
933 2 break;
934 2 case 11:
935 2 DP_RX_ReadI2C_RX0(LVDS_SWAP_10_11, &c);
936 2 DP_RX_WriteI2C_RX0(LVDS_SWAP_10_11, c & 0xf0 | from_rx_internal_channel);
937 2 break;
938 2 default:
939 2 break;
940 2 }
941 1 }
942
943 //**************** I2C routines ********************
944 BYTE DP_RX_ReadI2C_RX0(BYTE offset, BYTE *rxdata)
945 {
946 1 BYTE rc;
947 1 EX1 = 0;
948 1 i2c_dev_addr = DP_Rx_PORT0_ADDR;
949 1 rc = i2c_read_reg(offset, rxdata);
950 1
951 1 return rc;
952 1 }
953 BYTE DP_RX_WriteI2C_RX0(BYTE offset, BYTE txdata)
954 {
955 1 BYTE rc;
956 1 EX1 = 0;
957 1 i2c_dev_addr = DP_Rx_PORT0_ADDR;
958 1 rc = i2c_write_reg(offset, txdata);
959 1 return rc;
960 1 }
961 BYTE DP_RX_ReadI2C_RX1(BYTE offset, BYTE *rxdata)
962 {
963 1 BYTE rc;
964 1 EX1 = 0;
965 1 i2c_dev_addr = DP_Rx_PORT1_ADDR;
966 1 rc = i2c_read_reg(offset, rxdata);
967 1 return rc;
968 1 }
969
970 BYTE DP_RX_WriteI2C_RX1(BYTE offset, BYTE txdata)
971 {
972 1 BYTE rc;
973 1 EX1 = 0;
974 1 i2c_dev_addr = DP_Rx_PORT1_ADDR;
975 1 rc = i2c_write_reg(offset, txdata);
976 1 return rc;
977 1 }
978 BYTE DP_RX_ReadI2C_RX2(BYTE offset, BYTE *rxdata)
979 {
980 1 BYTE rc;
C51 COMPILER V7.50 DP_RX_DRV 10/03/2008 17:53:10 PAGE 17
981 1 EX1 = 0;
982 1 i2c_dev_addr = DP_Rx_PORT2_ADDR;
983 1 rc = i2c_read_reg(offset, rxdata);
984 1 return rc;
985 1 }
986
987 BYTE DP_RX_WriteI2C_RX2(BYTE offset, BYTE txdata)
988 {
989 1 BYTE rc;
990 1 EX1 = 0;
991 1 i2c_dev_addr = DP_Rx_PORT2_ADDR;
992 1 rc = i2c_write_reg(offset, txdata);
993 1 return rc;
994 1 }
995
C51 COMPILER V7.50 DP_RX_DRV 10/03/2008 17:53:10 PAGE 18
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION DP_RX_MainTask (BEGIN)
; SOURCE LINE # 27
; SOURCE LINE # 28
; SOURCE LINE # 29
0000 120000 R LCALL DP_RX_Timer_Process
; SOURCE LINE # 32
0003 020000 R LJMP DP_RX_Interrupt_Process
; FUNCTION DP_RX_MainTask (END)
; FUNCTION DP_RX_Timer_Process (BEGIN)
; SOURCE LINE # 36
; SOURCE LINE # 37
; SOURCE LINE # 38
0000 120000 R LCALL DP_RX_Timer_slot1
; SOURCE LINE # 39
0003 020000 R LJMP DP_RX_Timer_slot2
; FUNCTION DP_RX_Timer_Process (END)
; FUNCTION DP_RX_Interrupt_Process (BEGIN)
; SOURCE LINE # 43
; SOURCE LINE # 44
; SOURCE LINE # 47
0000 900000 R MOV DPTR,#DP_Rx_fw_state
0003 E0 MOVX A,@DPTR
0004 7003 JNZ $ + 5H
0006 020000 R LJMP ?C0011
; SOURCE LINE # 48
; SOURCE LINE # 49
0009 7B01 MOV R3,#01H
000B 7A00 R MOV R2,#HIGH int4
000D 7900 R MOV R1,#LOW int4
000F 7FCB MOV R7,#0CBH
0011 120000 R LCALL _DP_RX_ReadI2C_RX0
; SOURCE LINE # 50
0014 900000 R MOV DPTR,#int4
0017 7FCB MOV R7,#0CBH
0019 120000 R LCALL L?0150
; SOURCE LINE # 51
001C 900000 R MOV DPTR,#int4
001F E0 MOVX A,@DPTR
0020 FF MOV R7,A
0021 20E703 JB ACC.7,?C0005
0024 30E628 JNB ACC.6,?C0004
0027 ?C0005:
; SOURCE LINE # 52
; SOURCE LINE # 53
0027 7BFF MOV R3,#0FFH
0029 7A00 R MOV R2,#HIGH ?SC_0
002B 7900 R MOV R1,#LOW ?SC_0
002D 120000 E LCALL _debug_puts
; SOURCE LINE # 54
0030 7B01 MOV R3,#01H
0032 7A00 R MOV R2,#HIGH cv
0034 7900 R MOV R1,#LOW cv
0036 7F2F MOV R7,#02FH
0038 120000 R LCALL _DP_RX_ReadI2C_RX1
; SOURCE LINE # 55
003B 900000 R MOV DPTR,#cv
003E E0 MOVX A,@DPTR
C51 COMPILER V7.50 DP_RX_DRV 10/03/2008 17:53:10 PAGE 19
003F 30E20D JNB ACC.2,?C0004
; SOURCE LINE # 56
; SOURCE LINE # 57
0042 E4 CLR A
0043 FF MOV R7,A
0044 120000 E LCALL _DP_RX_HPD
; SOURCE LINE # 58
0047 120000 E LCALL delay_half_ms
; SOURCE LINE # 59
004A 7F01 MOV R7,#01H
004C 120000 E LCALL _DP_RX_HPD
; SOURCE LINE # 60
; SOURCE LINE # 61
004F ?C0004:
; SOURCE LINE # 62
004F 7B01 MOV R3,#01H
0051 7A00 R MOV R2,#HIGH int3
0053 7900 R MOV R1,#LOW int3
0055 7FCA MOV R7,#0CAH
0057 120000 R LCALL _DP_RX_ReadI2C_RX0
; SOURCE LINE # 63
005A 900000 R MOV DPTR,#int3
005D 7FCA MOV R7,#0CAH
005F 120000 R LCALL L?0150
; SOURCE LINE # 64
0062 900000 R MOV DPTR,#int3
0065 E0 MOVX A,@DPTR
0066 30E003 JNB ACC.0,?C0007
; SOURCE LINE # 65
0069 120000 R LCALL DP_RX_Data_RCV_Int
006C ?C0007:
; SOURCE LINE # 67
006C 7B01 MOV R3,#01H
006E 7A00 R MOV R2,#HIGH int1
0070 7900 R MOV R1,#LOW int1
0072 7FC8 MOV R7,#0C8H
0074 120000 R LCALL _DP_RX_ReadI2C_RX0
; SOURCE LINE # 68
0077 900000 R MOV DPTR,#int1
007A E0 MOVX A,@DPTR
007B F4 CPL A
007C FD MOV R5,A
007D 7FC8 MOV R7,#0C8H
007F 120000 R LCALL _DP_RX_WriteI2C_RX0
; SOURCE LINE # 70
0082 7B01 MOV R3,#01H
0084 7A00 R MOV R2,#HIGH int2
0086 7900 R MOV R1,#LOW int2
0088 7FC9 MOV R7,#0C9H
008A 120000 R LCALL _DP_RX_ReadI2C_RX0
; SOURCE LINE # 71
008D 900000 R MOV DPTR,#int2
0090 E0 MOVX A,@DPTR
0091 F4 CPL A
0092 FD MOV R5,A
0093 7FC9 MOV R7,#0C9H
0095 120000 R LCALL _DP_RX_WriteI2C_RX0
; SOURCE LINE # 73
0098 900000 R MOV DPTR,#int2
009B E0 MOVX A,@DPTR
009C 30E003 JNB ACC.0,?C0008
; SOURCE LINE # 74
C51 COMPILER V7.50 DP_RX_DRV 10/03/2008 17:53:10 PAGE 20
009F 120000 R LCALL DP_RX_Cable_Lost_Int
00A2 ?C0008:
; SOURCE LINE # 76
00A2 900000 R MOV DPTR,#int1
00A5 E0 MOVX A,@DPTR
00A6 30E203 JNB ACC.2,?C0009
; SOURCE LINE # 77
00A9 120000 R LCALL DP_RX_Vid_Change_Int
00AC ?C0009:
; SOURCE LINE # 79
00AC 900000 R MOV DPTR,#int1
00AF E0 MOVX A,@DPTR
00B0 30E103 JNB ACC.1,?C0010
; SOURCE LINE # 80
00B3 120000 R LCALL DP_RX_Link_Err_Int
00B6 ?C0010:
; SOURCE LINE # 82
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -