📄 cmx_blinkingled.lis
字号:
0000 cpu LMM
.module cmx_blinkingled.c
.area text(rom, con, rel)
0000 .dbfile ./cmx_blinkingled.c
0000 .dbfunc e CMX_BLINKINGLED_Instantiate _CMX_BLINKINGLED_Instantiate fV
0000 ; PPChan -> X+2
0000 ; Blink_port -> X+1
0000 ; Blink_pin -> X+0
0000 ; pPBlock -> X-5
0000 _CMX_BLINKINGLED_Instantiate::
0000 .dbline -1
0000 10 push X
0001 4F mov X,SP
0002 3803 add SP,3
0004 .dbline 43
0004 ; //*****************************************************************************
0004 ; //*****************************************************************************
0004 ; // FILENAME: CMX_BlinkingLed.c
0004 ; // Version: 1.1.0.1, Updated on 2007/05/18 at 17:38:12
0004 ; // Application: PSoC Express 2.0
0004 ; //
0004 ; // DESCRIPTION: This is driver for BLINKINGLED.
0004 ; //-----------------------------------------------------------------------------
0004 ; // Copyright (c) Cypress MicroSystems 2004. All Rights Reserved.
0004 ; //*****************************************************************************
0004 ; //*****************************************************************************
0004 ;
0004 ; #include "m8c.h"
0004 ; #include "CMX_BlinkingLed.h"
0004 ; #include "cmx.h"
0004 ; #include "projectproperties.h"
0004 ; #include "SystemTimer.h"
0004 ;
0004 ;
0004 ; BYTE BlinkingLedState[CMX_BLINKINGLED_COUNT]; // Allocate state byte for each instance
0004 ; BYTE BlinkingLedCount[CMX_BLINKINGLED_COUNT]; // Allocate count byte for each instance
0004 ;
0004 ; //-----------------------------------------------------------------------------
0004 ; // FUNCTION NAME: BLINKINGLED_Instantiate(pBlock)
0004 ; //
0004 ; // DESCRIPTION:
0004 ; // Initialize this instance of the BlinkingLED
0004 ; //
0004 ; //-----------------------------------------------------------------------------
0004 ; //
0004 ; // ARGUMENTS:
0004 ; // pPBlock == Pointer to parameter block.
0004 ; //
0004 ; // RETURNS: None
0004 ; //
0004 ; // SIDE EFFECTS:
0004 ; //
0004 ; // THEORY of OPERATION or PROCEDURE:
0004 ; //
0004 ; ////////////////////////////////////////////////////////////////////////////////
0004 ;
0004 ; void CMX_BLINKINGLED_Instantiate(const CMX_BLINKINGLED_ParameterBlock * pPBlock)
0004 ; {
0004 .dbline 48
0004 ; BYTE Blink_pin;
0004 ; BYTE Blink_port;
0004 ; BYTE PPChan;
0004 ;
0004 ; PPChan = DIOChannelPins[(pPBlock->BLINKINGLED_ChannelID)]; // Get pin and port info
0004 62D000 mov REG[0xd0],>__r0
0007 52FC mov A,[X-4]
0009 0106 add A,6
000B 5300 mov [__r1],A
000D 52FB mov A,[X-5]
000F 0900 adc A,0
0011 10 push X
0012 5800 mov X,[__r1]
0014 28 romx
0015 20 pop X
0016 5300 mov [__r1],A
0018 550000 mov [__r0],0
001B 060000 add [__r1],<_DIOChannelPins
001E 0E0000 adc [__r0],>_DIOChannelPins
0021 5100 mov A,[__r0]
0023 10 push X
0024 5800 mov X,[__r1]
0026 28 romx
0027 20 pop X
0028 5402 mov [X+2],A
002A .dbline 49
002A ; Blink_pin = pinlu[(BYTE)(PPChan & 0x0F)]; // Create pin mask
002A 5202 mov A,[X+2]
002C 210F and A,15
002E 5300 mov [__r1],A
0030 550000 mov [__r0],0
0033 060000 add [__r1],<_pinlu
0036 0E0000 adc [__r0],>_pinlu
0039 5100 mov A,[__r0]
003B 10 push X
003C 5800 mov X,[__r1]
003E 28 romx
003F 20 pop X
0040 5400 mov [X+0],A
0042 .dbline 50
0042 ; Blink_port = portlu[(BYTE)((PPChan & 0xF0) >>4)]; // Extract port address
0042 5202 mov A,[X+2]
0044 21F0 and A,-16
0046 67 asr A
0047 67 asr A
0048 67 asr A
0049 67 asr A
004A 210F and A,15
004C 5300 mov [__r1],A
004E 550000 mov [__r0],0
0051 060000 add [__r1],<_portlu
0054 0E0000 adc [__r0],>_portlu
0057 5100 mov A,[__r0]
0059 10 push X
005A 5800 mov X,[__r1]
005C 28 romx
005D 20 pop X
005E 5401 mov [X+1],A
0060 .dbline 51
0060 ; GlobalSelectDisconnect(Blink_pin,Blink_port); // Disconnect Global
0060 10 push X
0061 5201 mov A,[X+1]
0063 08 push A
0064 5200 mov A,[X+0]
0066 20 pop X
0067 7C0000 xcall _GlobalSelectDisconnect
006A 20 pop X
006B .dbline 53
006B ;
006B ; DiscreteDriveMode(Blink_pin, Blink_port, pPBlock->BLINKINGLED_DriveMode); // Set mode to Strong
006B 62D000 mov REG[0xd0],>__r0
006E 52FC mov A,[X-4]
0070 0104 add A,4
0072 5300 mov [__r1],A
0074 52FB mov A,[X-5]
0076 0900 adc A,0
0078 10 push X
0079 5800 mov X,[__r1]
007B 28 romx
007C 20 pop X
007D 10 push X
007E 08 push A
007F 5201 mov A,[X+1]
0081 08 push A
0082 5200 mov A,[X+0]
0084 08 push A
0085 7C0000 xcall _DiscreteDriveMode
0088 38FD add SP,-3
008A 20 pop X
008B .dbline -2
008B .dbline 54
008B ; }
008B L2:
008B 38FD add SP,-3
008D 20 pop X
008E .dbline 0 ; func end
008E 7F ret
008F .dbsym l PPChan 2 c
008F .dbsym l Blink_port 1 c
008F .dbsym l Blink_pin 0 c
008F .dbsym l pPBlock -5 pX
008F .dbend
008F .dbfunc e CMX_BLINKINGLED_SetValue _CMX_BLINKINGLED_SetValue fV
008F ; bPinPort -> X+1
008F ; bInstance -> X+0
008F ; bMode -> X-6
008F ; pPBlock -> X-5
008F _CMX_BLINKINGLED_SetValue::
008F .dbline -1
008F 10 push X
0090 4F mov X,SP
0091 3802 add SP,2
0093 .dbline 80
0093 ; //-----------------------------------------------------------------------------
0093 ; // FUNCTION NAME: BLINKINGLED_SetValue(pPBlock, bMode)
0093 ; //
0093 ; // DESCRIPTION:
0093 ; // Sets LED mode between Off, On, and Blink.
0093 ; //
0093 ; //-----------------------------------------------------------------------------
0093 ; //
0093 ; // ARGUMENTS:
0093 ; // pPBlock == Pointer to Parameter block
0093 ; // bMode == New Mode
0093 ; // 0 = Off
0093 ; // 1 = On
0093 ; // 2 = Blink
0093 ; //
0093 ; //
0093 ; // RETURNS: None
0093 ; //
0093 ; // SIDE EFFECTS:
0093 ; //
0093 ; // THEORY of OPERATION or PROCEDURE:
0093 ; //
0093 ; ////////////////////////////////////////////////////////////////////////////////
0093 ;
0093 ; void CMX_BLINKINGLED_SetValue(const CMX_BLINKINGLED_ParameterBlock * pPBlock, BYTE bMode)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -