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

📄 cmx_csdslider.lis

📁  PSoC(可编程片上系统)是Cypress半导体公司生产的包含有8位微处理器核和数字与模拟混合的信号阵列芯片
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 009F 5300              mov [__r0],A
 00A1 18                pop A
 00A2 75                inc X
 00A3 0900              adc A,0
 00A5 28                romx
 00A6 5300              mov [__r1],A
 00A8 20                pop X
 00A9 0101              add A,1
 00AB 5300              mov [__r3],A
 00AD 5100              mov A,[__r0]
 00AF 0900              adc A,0
 00B1 10                push X
 00B2 5800              mov X,[__r3]
 00B4 28                romx
 00B5 20                pop X
 00B6 10                push X
 00B7 08                push A
 00B8 5100              mov A,[__r0]
 00BA 10                push X
 00BB 5800              mov X,[__r1]
 00BD 28                romx
 00BE 20                pop X
 00BF 20                pop X
 00C0 7C0000            xcall _CSD_SetScanMode
 00C3 20                pop X
 00C4                   .dbline 67
 00C4           ;       CSD_SetRefValue(pPBlock->pCSDSliderSettings->RefValue);                                                 // Set Reference Value
 00C4 62D000            mov REG[0xd0],>__r0
 00C7 52FC              mov A,[X-4]
 00C9 0101              add A,1
 00CB 5300              mov [__r1],A
 00CD 52FB              mov A,[X-5]
 00CF 0900              adc A,0
 00D1 10                push X
 00D2 08                push A
 00D3 5800              mov X,[__r1]
 00D5 28                romx
 00D6 5300              mov [__r0],A
 00D8 18                pop A
 00D9 75                inc X
 00DA 0900              adc A,0
 00DC 28                romx
 00DD 5300              mov [__r1],A
 00DF 20                pop X
 00E0 060002            add [__r1],2
 00E3 0E0000            adc [__r0],0
 00E6 5100              mov A,[__r0]
 00E8 10                push X
 00E9 5800              mov X,[__r1]
 00EB 28                romx
 00EC 20                pop X
 00ED 10                push X
 00EE 7C0000            xcall _CSD_SetRefValue
 00F1 20                pop X
 00F2                   .dbline 68
 00F2           ;     CSD_ScanSensorGroup(bInstanceID);                                                 // Scan Slider's Sensors
 00F2 10                push X
 00F3 5200              mov A,[X+0]
 00F5 7C0000            xcall _CSD_ScanSensorGroup
 00F8 20                pop X
 00F9                   .dbline 69
 00F9           ;     CSD_UpdateGroupBaselines(bInstanceID);                                            // Update Slider's Baseline
 00F9 10                push X
 00FA 5200              mov A,[X+0]
 00FC 7C0000            xcall _CSD_UpdateGroupBaselines
 00FF 20                pop X
 0100                   .dbline 71
 0100           ;       
 0100           ;     bPos = (BYTE)CSD_wGetCentroidPos(bInstanceID);                            // Get the finger position
 0100 10                push X
 0101 5200              mov A,[X+0]
 0103 7C0000            xcall _CSD_wGetCentroidPos
 0106 62D000            mov REG[0xd0],>__r0
 0109 20                pop X
 010A 5401              mov [X+1],A
 010C                   .dbline 72
 010C           ;     if (bPos == 0xFF) bPos = 0;
 010C 3D01FF            cmp [X+1],-1
 010F B004              jnz L6
 0111                   .dbline 72
 0111 560100            mov [X+1],0
 0114           L6:
 0114                   .dbline 74
 0114           ;       
 0114           ;       return bPos;
 0114 5201              mov A,[X+1]
 0116 62D000            mov REG[0xd0],>__r0
 0119                   .dbline -2
 0119           L5:
 0119 38FE              add SP,-2
 011B 20                pop X
 011C                   .dbline 0 ; func end
 011C 7F                ret
 011D                   .dbsym l bPos 1 c
 011D                   .dbsym l bInstanceID 0 c
 011D                   .dbsym l pPBlock -5 pX
 011D                   .dbend
 011D                   .dbfunc e CMX_CSDSLIDER_GetDifference _CMX_CSDSLIDER_GetDifference fi
 011D           ;      bSnsGroup -> X+1
 011D           ;         bIndex -> X+0
 011D           ;        pPBlock -> X-5
 011D           _CMX_CSDSLIDER_GetDifference::
 011D                   .dbline -1
 011D 10                push X
 011E 4F                mov X,SP
 011F 3802              add SP,2
 0121                   .dbline 96
 0121           ; }
 0121           ; 
 0121           ; 
 0121           ; //-----------------------------------------------------------------------------
 0121           ; //  FUNCTION NAME: CSDSLIDER_GetDifference(const CMX_CSDSLIDEBASE_ParameterBlock * pPBlock)
 0121           ; //
 0121           ; //  DESCRIPTION:
 0121           ; //    Get current difference from the base driver.
 0121           ; //
 0121           ; //-----------------------------------------------------------------------------
 0121           ; //
 0121           ; //  ARGUMENTS: parameter block
 0121           ; //
 0121           ; //  RETURNS: BYTE
 0121           ; //
 0121           ; //  THEORY of OPERATION or PROCEDURE: Scans every sensor in the slider group.
 0121           ; //     Then updates baseline for the current slider group and gets the finger
 0121           ; //     position.
 0121           ; //
 0121           ; ///////////////////////////////////////////////////////////////////////////////
 0121           ; WORD CMX_CSDSLIDER_GetDifference(const CMX_CSDSLIDEBASE_ParameterBlock * pPBlock)
 0121           ; {
 0121                   .dbline 99
 0121           ;       BYTE bIndex, bSnsGroup;
 0121           ; 
 0121           ;       bIndex = pPBlock->bIndex;
 0121 62D000            mov REG[0xd0],>__r0
 0124 52FC              mov A,[X-4]
 0126 0101              add A,1
 0128 5300              mov [__r1],A
 012A 52FB              mov A,[X-5]
 012C 0900              adc A,0
 012E 10                push X
 012F 5800              mov X,[__r1]
 0131 28                romx
 0132 20                pop X
 0133 5400              mov [X+0],A
 0135                   .dbline 100
 0135           ;       bSnsGroup = pPBlock->bSnsGroup;
 0135 52FC              mov A,[X-4]
 0137 0102              add A,2
 0139 5300              mov [__r1],A
 013B 52FB              mov A,[X-5]
 013D 0900              adc A,0
 013F 10                push X
 0140 5800              mov X,[__r1]
 0142 28                romx
 0143 20                pop X
 0144 5401              mov [X+1],A
 0146                   .dbline 101
 0146           ;       bIndex += CSD_GetGroupSensorIndex(bSnsGroup);
 0146 10                push X
 0147 5201              mov A,[X+1]
 0149 7C0000            xcall _CSD_GetGroupSensorIndex
 014C 62D000            mov REG[0xd0],>__r0
 014F 20                pop X
 0150 0500              add [X+0],A
 0152                   .dbline 102
 0152           ;       return CSD_waSnsDiff[bIndex];
 0152 5200              mov A,[X+0]
 0154 5300              mov [__r1],A
 0156 550000            mov [__r0],0
 0159 6500              asl [__r1]
 015B 6B00              rlc [__r0]
 015D 060000            add [__r1],<_CSD_waSnsDiff
 0160 0E0000            adc [__r0],>_CSD_waSnsDiff
 0163 5100              mov A,[__r0]
 0165 60D4              mov REG[0xd4],A
 0167 3E00              mvi A,[__r1]
 0169 5300              mov [__r0],A
 016B 3E00              mvi A,[__r1]
 016D 5300              mov [__r1],A
 016F                   .dbline -2
 016F           L8:
 016F 38FE              add SP,-2
 0171 20                pop X
 0172                   .dbline 0 ; func end
 0172 7F                ret
 0173                   .dbsym l bSnsGroup 1 c
 0173                   .dbsym l bIndex 0 c
 0173                   .dbsym l pPBlock -5 pX
 0173                   .dbend

⌨️ 快捷键说明

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