📄 cmx_blinkingled.lis
字号:
0093 ; {
0093 .dbline 84
0093 ; BYTE bPinPort;
0093 ; BYTE bInstance;
0093 ;
0093 ; bInstance = pPBlock->BLINKINGLED_INSTANCE;
0093 62D000 mov REG[0xd0],>__r0
0096 52FC mov A,[X-4]
0098 0105 add A,5
009A 5300 mov [__r1],A
009C 52FB mov A,[X-5]
009E 0900 adc A,0
00A0 10 push X
00A1 5800 mov X,[__r1]
00A3 28 romx
00A4 20 pop X
00A5 5400 mov [X+0],A
00A7 .dbline 86
00A7 ;
00A7 ; if (bMode >= 2) { // If Value is 2 or great, put LED in blink mode.
00A7 3DFA02 cmp [X-6],2
00AA C090 jc L4
00AC X0:
00AC .dbline 86
00AC .dbline 88
00AC ;
00AC ; if ( (SystemTimer_bGetTickCntr() - BlinkingLedCount[bInstance]) >= pPBlock->BLINKINGLED_BlinkRate) {
00AC 10 push X
00AD 7C0000 xcall _SystemTimer_bGetTickCntr
00B0 62D000 mov REG[0xd0],>__r0
00B3 20 pop X
00B4 5300 mov [__r0],A
00B6 52FC mov A,[X-4]
00B8 0101 add A,1
00BA 5300 mov [__r3],A
00BC 52FB mov A,[X-5]
00BE 0900 adc A,0
00C0 10 push X
00C1 5800 mov X,[__r3]
00C3 28 romx
00C4 20 pop X
00C5 5300 mov [__r2],A
00C7 5200 mov A,[X+0]
00C9 5300 mov [__r5],A
00CB 550000 mov [__r4],0
00CE 060000 add [__r5],<_BlinkingLedCount
00D1 0E0000 adc [__r4],>_BlinkingLedCount
00D4 5100 mov A,[__r4]
00D6 60D4 mov REG[0xd4],A
00D8 3E00 mvi A,[__r5]
00DA 1400 sub [__r0],A
00DC 5100 mov A,[__r0]
00DE 3A00 cmp A,[__r2]
00E0 C042 jc L6
00E2 X1:
00E2 .dbline 88
00E2 .dbline 89
00E2 ; BlinkingLedCount[bInstance] = SystemTimer_bGetTickCntr();
00E2 10 push X
00E3 7C0000 xcall _SystemTimer_bGetTickCntr
00E6 62D000 mov REG[0xd0],>__r0
00E9 20 pop X
00EA 5300 mov [__r0],A
00EC 5200 mov A,[X+0]
00EE 5300 mov [__r3],A
00F0 550000 mov [__r2],0
00F3 060000 add [__r3],<_BlinkingLedCount
00F6 0E0000 adc [__r2],>_BlinkingLedCount
00F9 5100 mov A,[__r2]
00FB 60D5 mov REG[0xd5],A
00FD 5100 mov A,[__r0]
00FF 3F00 mvi [__r3],A
0101 .dbline 90
0101 ; BlinkingLedState[bInstance] ^= 0x01;
0101 5200 mov A,[X+0]
0103 5300 mov [__r1],A
0105 550000 mov [__r0],0
0108 060000 add [__r1],<_BlinkingLedState
010B 0E0000 adc [__r0],>_BlinkingLedState
010E 5100 mov A,[__r0]
0110 60D4 mov REG[0xd4],A
0112 3E00 mvi A,[__r1]
0114 7A00 dec [__r1]
0116 5300 mov [__r2],A
0118 360001 xor [__r2],1
011B 5100 mov A,[__r0]
011D 60D5 mov REG[0xd5],A
011F 5100 mov A,[__r2]
0121 3F00 mvi [__r1],A
0123 .dbline 91
0123 ; }
0123 L6:
0123 .dbline 92
0123 ; bMode = BlinkingLedState[bInstance];
0123 62D000 mov REG[0xd0],>__r0
0126 5200 mov A,[X+0]
0128 5300 mov [__r1],A
012A 550000 mov [__r0],0
012D 060000 add [__r1],<_BlinkingLedState
0130 0E0000 adc [__r0],>_BlinkingLedState
0133 5100 mov A,[__r0]
0135 60D4 mov REG[0xd4],A
0137 3E00 mvi A,[__r1]
0139 54FA mov [X-6],A
013B .dbline 93
013B ; }
013B L4:
013B .dbline 95
013B ;
013B ; bPinPort = DIOChannelPins[(pPBlock->BLINKINGLED_ChannelID)];
013B 62D000 mov REG[0xd0],>__r0
013E 52FC mov A,[X-4]
0140 0106 add A,6
0142 5300 mov [__r1],A
0144 52FB mov A,[X-5]
0146 0900 adc A,0
0148 10 push X
0149 5800 mov X,[__r1]
014B 28 romx
014C 20 pop X
014D 5300 mov [__r1],A
014F 550000 mov [__r0],0
0152 060000 add [__r1],<_DIOChannelPins
0155 0E0000 adc [__r0],>_DIOChannelPins
0158 5100 mov A,[__r0]
015A 10 push X
015B 5800 mov X,[__r1]
015D 28 romx
015E 20 pop X
015F 5401 mov [X+1],A
0161 .dbline 96
0161 ; if ((pPBlock->BLINKINGLED_DRIVESENSE ^ bMode ) == 0) { // Set LED to ON or OFF depending on mode.
0161 52FC mov A,[X-4]
0163 0102 add A,2
0165 5300 mov [__r1],A
0167 52FB mov A,[X-5]
0169 0900 adc A,0
016B 10 push X
016C 5800 mov X,[__r1]
016E 28 romx
016F 20 pop X
0170 5300 mov [__r0],A
0172 52FA mov A,[X-6]
0174 3400 xor [__r0],A
0176 3C0000 cmp [__r0],0
0179 B00E jnz L8
017B .dbline 96
017B .dbline 97
017B ; DISetPin(bPinPort,1);
017B 10 push X
017C 5001 mov A,1
017E 08 push A
017F 5201 mov A,[X+1]
0181 20 pop X
0182 7C0000 xcall _DISetPin
0185 20 pop X
0186 .dbline 98
0186 800C xjmp L9
0188 L8:
0188 .dbline 98
0188 .dbline 99
0188 10 push X
0189 5000 mov A,0
018B 08 push A
018C 5201 mov A,[X+1]
018E 20 pop X
018F 7C0000 xcall _DISetPin
0192 20 pop X
0193 .dbline 100
0193 L9:
0193 .dbline -2
0193 .dbline 101
0193 ; } else {
0193 ; DISetPin(bPinPort,0);
0193 ; }
0193 ; }
0193 L3:
0193 38FE add SP,-2
0195 20 pop X
0196 .dbline 0 ; func end
0196 7F ret
0197 .dbsym l bPinPort 1 c
0197 .dbsym l bInstance 0 c
0197 .dbsym l bMode -6 c
0197 .dbsym l pPBlock -5 pX
0197 .dbend
.area data(ram, con, rel)
0000 .dbfile ./cmx_blinkingled.c
0000 _BlinkingLedCount::
0000 00 .byte 0
0001 .dbsym e BlinkingLedCount _BlinkingLedCount A[1:1]c
.area data(ram, con, rel)
0000 .dbfile ./cmx_blinkingled.c
0000 _BlinkingLedState::
0000 00 .byte 0
0001 .dbsym e BlinkingLedState _BlinkingLedState A[1:1]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -