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

📄 cmx_lx1972l.lis

📁 sypress psoc express 驱动led发光的应用程序.
💻 LIS
字号:
 0000                   cpu LMM
                        .module cmx_lx1972l.c
                        .area text(rom, con, rel)
 0000                   .dbfile ./cmx_lx1972l.c
 0000                   .dbfunc e CMX_LX1972L_Instantiate _CMX_LX1972L_Instantiate fV
 0000           ;        thisBLK -> X-5
 0000           _CMX_LX1972L_Instantiate::
 0000                   .dbline -1
 0000 10                push X
 0001 4F                mov X,SP
 0002                   .dbline 45
 0002           ; //*****************************************************************************
 0002           ; //*****************************************************************************
 0002           ; //  FILENAME:  CMX_LX1972L.c
 0002           ; //  Version: 1.0, Updated on 2006/01/28 at 20:15:02
 0002           ; //  Application: PSoC Express 2.0
 0002           ; //
 0002           ; //  DESCRIPTION:  This Driver calls the low level driver and returns the
 0002           ; //                voltage that corresponds to a given channel.
 0002           ; //
 0002           ; //-----------------------------------------------------------------------------
 0002           ; //      Copyright (c) Cypress MicroSystems 2006. All Rights Reserved.
 0002           ; //*****************************************************************************
 0002           ; //*****************************************************************************
 0002           ; 
 0002           ; #include "m8c.h"
 0002           ; #include "CMX_LX1972L.h"
 0002           ; #include "cmx.h"
 0002           ; 
 0002           ; // Channel type header file
 0002           ; #include "CMX_MVOLTS_IN_CHAN.h"
 0002           ; 
 0002           ; // The format of the function should always be the same,
 0002           ; // no matter what low level driver is used.
 0002           ; 
 0002           ; //-----------------------------------------------------------------------------
 0002           ; //  FUNCTION NAME: LX1972L_Instantiate(const CMX_LX1972L_ParameterBlock * thisBLK)
 0002           ; //
 0002           ; //  DESCRIPTION:  
 0002           ; //    This function doesn't do anything at this time, but is placed here
 0002           ; //    for forward compatibility.
 0002           ; //
 0002           ; //-----------------------------------------------------------------------------
 0002           ; //
 0002           ; //  ARGUMENTS: 
 0002           ; //    thisBLK  => Pointer to ParameterBlock for this instance.
 0002           ; //
 0002           ; //  RETURNS: None
 0002           ; //
 0002           ; //  SIDE EFFECTS: 
 0002           ; //
 0002           ; //  THEORY of OPERATION or PROCEDURE: 
 0002           ; //
 0002           ; //-----------------------------------------------------------------------------
 0002           ; void CMX_LX1972L_Instantiate(const CMX_LX1972L_ParameterBlock * thisBLK)
 0002           ; {
 0002                   .dbline -2
 0002                   .dbline 47
 0002           ;     // Blank function
 0002           ; }
 0002           L2:
 0002 20                pop X
 0003                   .dbline 0 ; func end
 0003 7F                ret
 0004                   .dbsym l thisBLK -5 pX
 0004                   .dbend
 0004                   .dbfunc e CMX_LX1972L_GetValue _CMX_LX1972L_GetValue fc
 0004           ;        lCounts -> X+0
 0004           ;        thisBLK -> X-5
 0004           _CMX_LX1972L_GetValue::
 0004                   .dbline -1
 0004 10                push X
 0005 4F                mov X,SP
 0006 3804              add SP,4
 0008                   .dbline 70
 0008           ; 
 0008           ; //-----------------------------------------------------------------------------
 0008           ; //  FUNCTION NAME: LX1972L_GetValue(const CMX_LX1972L_ParameterBlock * thisBLK)
 0008           ; //
 0008           ; //  DESCRIPTION:  
 0008           ; //    This function returns a value between 0 and 100 based on the LX1972L
 0008           ; //    postion.  
 0008           ; //
 0008           ; //-----------------------------------------------------------------------------
 0008           ; //
 0008           ; //  ARGUMENTS: 
 0008           ; //    thisBLK  => Pointer to ParameterBlock for this instance.
 0008           ; //
 0008           ; //  RETURNS: 
 0008           ; //      A Byte value between 0 and 100.
 0008           ; //
 0008           ; //  SIDE EFFECTS: 
 0008           ; //
 0008           ; //  THEORY of OPERATION or PROCEDURE: 
 0008           ; //
 0008           ; //-----------------------------------------------------------------------------
 0008           ; BYTE CMX_LX1972L_GetValue(const CMX_LX1972L_ParameterBlock * thisBLK)
 0008           ; {
 0008                   .dbline 73
 0008           ;    long lCounts;
 0008           ; 
 0008           ;    lCounts = (long)(iGetAinChanCounts(thisBLK->InPort))*101;  
 0008 62D000            mov REG[0xd0],>__r0
 000B 52FC              mov A,[X-4]
 000D 0101              add A,1
 000F 5300              mov [__r1],A
 0011 52FB              mov A,[X-5]
 0013 0900              adc A,0
 0015 10                push X
 0016 5800              mov X,[__r1]
 0018 28                romx
 0019 20                pop X
 001A 10                push X
 001B 7C0000            xcall _iGetAinChanCounts
 001E 62D000            mov REG[0xd0],>__r0
 0021 5A00              mov [__r0],X
 0023 20                pop X
 0024 5300              mov [__r3],A
 0026 5100              mov A,[__r0]
 0028 5300              mov [__r2],A
 002A 470080            tst [__r2],-128
 002D A009              jz X0
 002F 5500FF            mov [__r1],-1
 0032 5500FF            mov [__r0],-1
 0035 800A              jmp X1
 0037           X0:
 0037 62D000            mov REG[0xd0],>__r0
 003A 550000            mov [__r1],0
 003D 550000            mov [__r0],0
 0040           X1:
 0040 62D000            mov REG[0xd0],>__r0
 0043 5100              mov A,[__r0]
 0045 08                push A
 0046 5100              mov A,[__r1]
 0048 08                push A
 0049 5100              mov A,[__r2]
 004B 08                push A
 004C 5100              mov A,[__r3]
 004E 08                push A
 004F 5000              mov A,0
 0051 08                push A
 0052 08                push A
 0053 08                push A
 0054 5065              mov A,101
 0056 08                push A
 0057 7C0000            xcall __mul_32X32_32
 005A 38FC              add SP,-4
 005C 18                pop A
 005D 5403              mov [X+3],A
 005F 18                pop A
 0060 5402              mov [X+2],A
 0062 18                pop A
 0063 5401              mov [X+1],A
 0065 18                pop A
 0066 5400              mov [X+0],A
 0068                   .dbline 74
 0068           ;    lCounts = lCounts / (1 << (CMX_ADC_CHAN_RESOLUTION));
 0068 5000              mov A,0
 006A 08                push A
 006B 08                push A
 006C 5004              mov A,4
 006E 08                push A
 006F 5000              mov A,0
 0071 08                push A
 0072 5200              mov A,[X+0]
 0074 08                push A
 0075 5201              mov A,[X+1]
 0077 08                push A
 0078 5202              mov A,[X+2]
 007A 08                push A
 007B 5203              mov A,[X+3]
 007D 08                push A
 007E 7C0000            xcall __divmod_32X32_32
 0081 18                pop A
 0082 5403              mov [X+3],A
 0084 18                pop A
 0085 5402              mov [X+2],A
 0087 18                pop A
 0088 5401              mov [X+1],A
 008A 18                pop A
 008B 5400              mov [X+0],A
 008D 38FC              add SP,-4
 008F                   .dbline 75
 008F           ;    if (lCounts > 100)  lCounts = 100;                 // Make sure Max is 100
 008F 5064              mov A,100
 0091 1303              sub A,[X+3]
 0093 5000              mov A,0
 0095 1B02              sbb A,[X+2]
 0097 5000              mov A,0
 0099 1B01              sbb A,[X+1]
 009B 5200              mov A,[X+0]
 009D 3180              xor A,-128
 009F 5300              mov [__rX],A
 00A1 5080              mov A,(0 ^ 0x80)
 00A3 1A00              sbb A,[__rX]
 00A5 D00D              jnc L4
 00A7           X2:
 00A7                   .dbline 75
 00A7 560000            mov [X+0],0
 00AA 560100            mov [X+1],0
 00AD 560200            mov [X+2],0
 00B0 560364            mov [X+3],100
 00B3           L4:
 00B3                   .dbline 77
 00B3           ; 
 00B3           ;    return((BYTE)lCounts);                              // Convert to BYTE and return
 00B3 62D000            mov REG[0xd0],>__r0
 00B6 5203              mov A,[X+3]
 00B8                   .dbline -2
 00B8           L3:
 00B8 38FC              add SP,-4
 00BA 20                pop X
 00BB                   .dbline 0 ; func end
 00BB 7F                ret
 00BC                   .dbsym l lCounts 0 L
 00BC                   .dbsym l thisBLK -5 pX
 00BC                   .dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -