📄 cmx_rgbled.lis
字号:
0000 cpu LMM
.module cmx_rgbled.c
.area text(rom, con, rel)
0000 .dbfile ./cmx_rgbled.c
0000 .dbfunc e CMX_RGBLED_Instantiate _CMX_RGBLED_Instantiate fV
0000 ; thisBLK -> X-5
0000 _CMX_RGBLED_Instantiate::
0000 .dbline -1
0000 10 push X
0001 4F mov X,SP
0002 .dbline 28
0002 ; //*****************************************************************************
0002 ; //*****************************************************************************
0002 ; // FILENAME: CMX_RGBLED.c
0002 ; // Version: 1.1, Updated on 2007/03/08 at 09:37:41
0002 ; // Application: PSoC Express 2.0
0002 ; //
0002 ; // DESCRIPTION:
0002 ; // This Driver calls DIO_SetValue to set IOs.
0002 ; //
0002 ; //-----------------------------------------------------------------------------
0002 ; // Copyright (c) Cypress MicroSystems 2007. All Rights Reserved.
0002 ; //*****************************************************************************
0002 ; //*****************************************************************************
0002 ;
0002 ; #include "m8c.h"
0002 ; #include "CMX_RGBLED.h"
0002 ; #include "cmx.h"
0002 ;
0002 ; // *********************** RGBLED_Instantiate() *******************************
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 ; void CMX_RGBLED_Instantiate(const CMX_RGBLED_ParameterBlock * thisBLK)
0002 ; {
0002 .dbline -2
0002 .dbline 30
0002 ; // Blank function
0002 ; }
0002 L3:
0002 20 pop X
0003 .dbline 0 ; func end
0003 7F ret
0004 .dbsym l thisBLK -5 pX
0004 .dbend
0004 .dbfunc e CMX_RGBLED_SetValue _CMX_RGBLED_SetValue fV
0004 ; bState -> X-6
0004 ; thisBLK -> X-5
0004 _CMX_RGBLED_SetValue::
0004 .dbline -1
0004 10 push X
0005 4F mov X,SP
0006 .dbline 47
0006 ;
0006 ; // *********************** RGBLED_SetValue() *******************************
0006 ; //
0006 ; // Description:
0006 ; // This function sets the individual compenent drivers
0006 ; //
0006 ; // input:
0006 ; // thisBLK => Pointer to ParameterBlock for this instance.
0006 ; // local_state => BYTE input variable that determine state of this driver
0006 ; //
0006 ; // Return Value:
0006 ; // None.
0006 ; // THEORY of OPERATION or PROCEDURE:
0006 ; // Driver output states include: OFF, RED, GREEN, BLUE.
0006 ;
0006 ; void CMX_RGBLED_SetValue(const CMX_RGBLED_ParameterBlock * thisBLK, BYTE bState)
0006 ; {
0006 .dbline 48
0006 ; if(bState >= 3) bState = 4;
0006 3DFA03 cmp [X-6],3
0009 C004 jc L5
000B X0:
000B .dbline 48
000B 56FA04 mov [X-6],4
000E L5:
000E .dbline 49
000E ; bState ^= thisBLK->bDrivePolarity;
000E 62D000 mov REG[0xd0],>__r0
0011 52FC mov A,[X-4]
0013 0106 add A,6
0015 5300 mov [__r1],A
0017 52FB mov A,[X-5]
0019 0900 adc A,0
001B 10 push X
001C 5800 mov X,[__r1]
001E 28 romx
001F 20 pop X
0020 5300 mov [__r0],A
0022 52FA mov A,[X-6]
0024 3200 xor A,[__r0]
0026 54FA mov [X-6],A
0028 .dbline 52
0028 ;
0028 ; // Set appropriate subcontainer driver states
0028 ; CMX_DIO_SetValue(thisBLK->DriverPin_RED, bState & 1);
0028 52FA mov A,[X-6]
002A 2101 and A,1
002C 08 push A
002D 52FC mov A,[X-4]
002F 0104 add A,4
0031 5300 mov [__r1],A
0033 52FB mov A,[X-5]
0035 0900 adc A,0
0037 10 push X
0038 08 push A
0039 5800 mov X,[__r1]
003B 28 romx
003C 5300 mov [__r0],A
003E 18 pop A
003F 75 inc X
0040 0900 adc A,0
0042 28 romx
0043 5300 mov [__r1],A
0045 20 pop X
0046 5100 mov A,[__r0]
0048 08 push A
0049 5100 mov A,[__r1]
004B 08 push A
004C 7C0000 xcall _CMX_DIO_SetValue
004F 38FD add SP,-3
0051 .dbline 53
0051 ; CMX_DIO_SetValue(thisBLK->DriverPin_GREEN, (bState >> 1) & 1);
0051 52FA mov A,[X-6]
0053 62D000 mov REG[0xd0],>__r0
0056 5300 mov [__r0],A
0058 70FB and F,-5
005A 6E00 rrc [__r0]
005C 260001 and [__r0],1
005F 5100 mov A,[__r0]
0061 08 push A
0062 52FC mov A,[X-4]
0064 0102 add A,2
0066 5300 mov [__r1],A
0068 52FB mov A,[X-5]
006A 0900 adc A,0
006C 10 push X
006D 08 push A
006E 5800 mov X,[__r1]
0070 28 romx
0071 5300 mov [__r0],A
0073 18 pop A
0074 75 inc X
0075 0900 adc A,0
0077 28 romx
0078 5300 mov [__r1],A
007A 20 pop X
007B 5100 mov A,[__r0]
007D 08 push A
007E 5100 mov A,[__r1]
0080 08 push A
0081 7C0000 xcall _CMX_DIO_SetValue
0084 38FD add SP,-3
0086 .dbline 54
0086 ; CMX_DIO_SetValue(thisBLK->DriverPin_BLUE, (bState >> 2) & 1);
0086 52FA mov A,[X-6]
0088 62D000 mov REG[0xd0],>__r0
008B 5300 mov [__r0],A
008D 6800 asr [__r0]
008F 6800 asr [__r0]
0091 26003F and [__r0],63
0094 260001 and [__r0],1
0097 5100 mov A,[__r0]
0099 08 push A
009A 52FC mov A,[X-4]
009C 5300 mov [__r1],A
009E 52FB mov A,[X-5]
00A0 10 push X
00A1 08 push A
00A2 5800 mov X,[__r1]
00A4 28 romx
00A5 5300 mov [__r0],A
00A7 18 pop A
00A8 75 inc X
00A9 0900 adc A,0
00AB 28 romx
00AC 5300 mov [__r1],A
00AE 20 pop X
00AF 5100 mov A,[__r0]
00B1 08 push A
00B2 5100 mov A,[__r1]
00B4 08 push A
00B5 7C0000 xcall _CMX_DIO_SetValue
00B8 38FD add SP,-3
00BA .dbline -2
00BA .dbline 55
00BA ; }
00BA L4:
00BA 20 pop X
00BB .dbline 0 ; func end
00BB 7F ret
00BC .dbsym l bState -6 c
00BC .dbsym l thisBLK -5 pX
00BC .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -