⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dp_rx_drv.lst

📁 display port接受芯片ANX9813的驱动代码。MCU使用LPC936FDH,内部包含AN9813寄存器设置
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -