📄 cmx_csdproximity.lis
字号:
02D3 5100 mov A,[__r0]
02D5 60D5 mov REG[0xd5],A
02D7 5200 mov A,[X+0]
02D9 3F00 mvi [__r1],A
02DB 5201 mov A,[X+1]
02DD 3F00 mvi [__r1],A
02DF .dbline 107
02DF ; }
02DF 8027 xjmp L11
02E1 L10:
02E1 .dbline 110
02E1 ; // else return zero
02E1 ; else
02E1 ; {
02E1 .dbline 111
02E1 ; iRetValue = 0;
02E1 560100 mov [X+1],0
02E4 560000 mov [X+0],0
02E7 .dbline 112
02E7 ; iCSDPROXIMITYPrev[bInstanceID] = iRetValue;
02E7 62D000 mov REG[0xd0],>__r0
02EA 5206 mov A,[X+6]
02EC 5300 mov [__r1],A
02EE 550000 mov [__r0],0
02F1 6500 asl [__r1]
02F3 6B00 rlc [__r0]
02F5 060000 add [__r1],<_iCSDPROXIMITYPrev
02F8 0E0000 adc [__r0],>_iCSDPROXIMITYPrev
02FB 5100 mov A,[__r0]
02FD 60D5 mov REG[0xd5],A
02FF 5200 mov A,[X+0]
0301 3F00 mvi [__r1],A
0303 5201 mov A,[X+1]
0305 3F00 mvi [__r1],A
0307 .dbline 113
0307 ; }
0307 L11:
0307 L9:
0307 L7:
0307 .dbline 115
0307 ;
0307 ; return iRetValue;
0307 62D000 mov REG[0xd0],>__r0
030A 5201 mov A,[X+1]
030C 5300 mov [__r1],A
030E 5200 mov A,[X+0]
0310 5300 mov [__r0],A
0312 .dbline -2
0312 L5:
0312 38F6 add SP,-10
0314 20 pop X
0315 .dbline 0 ; func end
0315 7F ret
0316 .dbsym l bRefValue 9 c
0316 .dbsym l bResolution 8 c
0316 .dbsym l bScanSpeed 7 c
0316 .dbsym l bInstanceID 6 c
0316 .dbsym l iDetectionThreshold 4 I
0316 .dbsym l bHysteresis 3 c
0316 .dbsym l bBaseInstanceID 2 c
0316 .dbsym l iRetValue 0 I
0316 .dbsym l pPBlock -5 pX
0316 .dbend
0316 .dbfunc e CMX_CSDPROXIMITY_GetBaseline _CMX_CSDPROXIMITY_GetBaseline fI
0316 ; pPBlock -> X-5
0316 _CMX_CSDPROXIMITY_GetBaseline::
0316 .dbline -1
0316 10 push X
0317 4F mov X,SP
0318 .dbline 135
0318 ; }
0318 ;
0318 ; //-----------------------------------------------------------------------------
0318 ; // FUNCTION NAME: CSDPROXIMITY_GetBaseline(const CMX_CSDPROXIMITY_ParameterBlock * pPBlock)
0318 ; //
0318 ; // DESCRIPTION:
0318 ; // Get current Baseline count from the base driver.
0318 ; //
0318 ; //-----------------------------------------------------------------------------
0318 ; //
0318 ; // ARGUMENTS: parameter block
0318 ; //
0318 ; // RETURNS: int
0318 ; //
0318 ; // THEORY of OPERATION or PROCEDURE: The functions gets the CapSense button
0318 ; // Baseline count
0318 ; //
0318 ; ///////////////////////////////////////////////////////////////////////////////
0318 ; int CMX_CSDPROXIMITY_GetBaseline(const CMX_CSDPROXIMITY_ParameterBlock * pPBlock)
0318 ; {
0318 .dbline 136
0318 ; return CSD_waSnsBaseline[pPBlock->CSDButtBaseBLK->bInstanceID];
0318 62D000 mov REG[0xd0],>__r0
031B 52FC mov A,[X-4]
031D 0102 add A,2
031F 5300 mov [__r1],A
0321 52FB mov A,[X-5]
0323 0900 adc A,0
0325 10 push X
0326 08 push A
0327 5800 mov X,[__r1]
0329 28 romx
032A 5300 mov [__r0],A
032C 18 pop A
032D 75 inc X
032E 0900 adc A,0
0330 28 romx
0331 5300 mov [__r1],A
0333 20 pop X
0334 5100 mov A,[__r0]
0336 10 push X
0337 5800 mov X,[__r1]
0339 28 romx
033A 20 pop X
033B 5300 mov [__r1],A
033D 550000 mov [__r0],0
0340 6500 asl [__r1]
0342 6B00 rlc [__r0]
0344 060000 add [__r1],<_CSD_waSnsBaseline
0347 0E0000 adc [__r0],>_CSD_waSnsBaseline
034A 5100 mov A,[__r0]
034C 60D4 mov REG[0xd4],A
034E 3E00 mvi A,[__r1]
0350 5300 mov [__r0],A
0352 3E00 mvi A,[__r1]
0354 5300 mov [__r1],A
0356 .dbline -2
0356 L12:
0356 20 pop X
0357 .dbline 0 ; func end
0357 7F ret
0358 .dbsym l pPBlock -5 pX
0358 .dbend
0358 .dbfunc e CMX_CSDPROXIMITY_GetRawCount _CMX_CSDPROXIMITY_GetRawCount fI
0358 ; pPBlock -> X-5
0358 _CMX_CSDPROXIMITY_GetRawCount::
0358 .dbline -1
0358 10 push X
0359 4F mov X,SP
035A .dbline 156
035A ; }
035A ;
035A ; //-----------------------------------------------------------------------------
035A ; // FUNCTION NAME: CSDPROXIMITY_GetRawCount(const CMX_CSDPROXIMITY_ParameterBlock * pPBlock)
035A ; //
035A ; // DESCRIPTION:
035A ; // Get current Raw count from the base driver.
035A ; //
035A ; //-----------------------------------------------------------------------------
035A ; //
035A ; // ARGUMENTS: parameter block
035A ; //
035A ; // RETURNS: int
035A ; //
035A ; // THEORY of OPERATION or PROCEDURE: The functions gets the CapSense button
035A ; // Raw count
035A ; //
035A ; ///////////////////////////////////////////////////////////////////////////////
035A ; int CMX_CSDPROXIMITY_GetRawCount(const CMX_CSDPROXIMITY_ParameterBlock * pPBlock)
035A ; {
035A .dbline 157
035A ; return CSD_waSnsResult[pPBlock->CSDButtBaseBLK->bInstanceID];
035A 62D000 mov REG[0xd0],>__r0
035D 52FC mov A,[X-4]
035F 0102 add A,2
0361 5300 mov [__r1],A
0363 52FB mov A,[X-5]
0365 0900 adc A,0
0367 10 push X
0368 08 push A
0369 5800 mov X,[__r1]
036B 28 romx
036C 5300 mov [__r0],A
036E 18 pop A
036F 75 inc X
0370 0900 adc A,0
0372 28 romx
0373 5300 mov [__r1],A
0375 20 pop X
0376 5100 mov A,[__r0]
0378 10 push X
0379 5800 mov X,[__r1]
037B 28 romx
037C 20 pop X
037D 5300 mov [__r1],A
037F 550000 mov [__r0],0
0382 6500 asl [__r1]
0384 6B00 rlc [__r0]
0386 060000 add [__r1],<_CSD_waSnsResult
0389 0E0000 adc [__r0],>_CSD_waSnsResult
038C 5100 mov A,[__r0]
038E 60D4 mov REG[0xd4],A
0390 3E00 mvi A,[__r1]
0392 5300 mov [__r0],A
0394 3E00 mvi A,[__r1]
0396 5300 mov [__r1],A
0398 .dbline -2
0398 L13:
0398 20 pop X
0399 .dbline 0 ; func end
0399 7F ret
039A .dbsym l pPBlock -5 pX
039A .dbend
039A .dbfunc e CMX_CSDPROXIMITY_GetDifference _CMX_CSDPROXIMITY_GetDifference fI
039A ; bInstanceID -> X+0
039A ; pPBlock -> X-5
039A _CMX_CSDPROXIMITY_GetDifference::
039A .dbline -1
039A 10 push X
039B 4F mov X,SP
039C 3801 add SP,1
039E .dbline 177
039E ; }
039E ;
039E ; //-----------------------------------------------------------------------------
039E ; // FUNCTION NAME: CSDPROXIMITY_GetDifference(const CMX_CSDPROXIMITY_ParameterBlock * pPBlock)
039E ; //
039E ; // DESCRIPTION:
039E ; // Get current Difference count from the base driver.
039E ; //
039E ; //-----------------------------------------------------------------------------
039E ; //
039E ; // ARGUMENTS: parameter block
039E ; //
039E ; // RETURNS: int
039E ; //
039E ; // THEORY of OPERATION or PROCEDURE: The functions gets the CapSense button
039E ; // Difference count
039E ; //
039E ; ///////////////////////////////////////////////////////////////////////////////
039E ; int CMX_CSDPROXIMITY_GetDifference(const CMX_CSDPROXIMITY_ParameterBlock * pPBlock)
039E ; {
039E .dbline 178
039E ; BYTE bInstanceID = pPBlock->CSDButtBaseBLK->bInstanceID;
039E 62D000 mov REG[0xd0],>__r0
03A1 52FC mov A,[X-4]
03A3 0102 add A,2
03A5 5300 mov [__r1],A
03A7 52FB mov A,[X-5]
03A9 0900 adc A,0
03AB 10 push X
03AC 08 push A
03AD 5800 mov X,[__r1]
03AF 28 romx
03B0 5300 mov [__r0],A
03B2 18 pop A
03B3 75 inc X
03B4 0900 adc A,0
03B6 28 romx
03B7 5300 mov [__r1],A
03B9 20 pop X
03BA 5100 mov A,[__r0]
03BC 10 push X
03BD 5800 mov X,[__r1]
03BF 28 romx
03C0 20 pop X
03C1 5400 mov [X+0],A
03C3 .dbline 179
03C3 ; return CSD_waSnsDiff[bInstanceID];
03C3 5200 mov A,[X+0]
03C5 5300 mov [__r1],A
03C7 550000 mov [__r0],0
03CA 6500 asl [__r1]
03CC 6B00 rlc [__r0]
03CE 060000 add [__r1],<_CSD_waSnsDiff
03D1 0E0000 adc [__r0],>_CSD_waSnsDiff
03D4 5100 mov A,[__r0]
03D6 60D4 mov REG[0xd4],A
03D8 3E00 mvi A,[__r1]
03DA 5300 mov [__r0],A
03DC 3E00 mvi A,[__r1]
03DE 5300 mov [__r1],A
03E0 .dbline -2
03E0 L14:
03E0 38FF add SP,-1
03E2 20 pop X
03E3 .dbline 0 ; func end
03E3 7F ret
03E4 .dbsym l bInstanceID 0 c
03E4 .dbsym l pPBlock -5 pX
03E4 .dbend
.area data(ram, con, rel)
0000 .dbfile ./cmx_csdproximity.c
0000 _iCSDPROXIMITYPrev::
0000 0000 .byte 0,0
0002 .dbsym e iCSDPROXIMITYPrev _iCSDPROXIMITYPrev A[2:1]I
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -