📄 csdhl.lis
字号:
; Local variables
0006 _CSD_bEndOfArray: ; Temp pointer variable
0006 CSD_bEndOfArray: BLK 1
0007 _CSD_fIsPressed: ; Temp variable for if any sensor is pressed
0007 CSD_fIsPressed: BLK 1
0008 _CSD_bCurPos: ; Temp position variable
0008 CSD_bCurPos: BLK 1
0009 _CSD_bSnsMaskPtr: ; Temp sensor mask pointer used in centroid calculation
0009 CSD_bSnsMaskPtr: BLK 1
000A _CSD_bStartIndex: ; Temp Start index
000A CSD_bStartIndex: BLK 1
000B _CSD_wTmpBtnFThreshold: ; Temp Difference
000B CSD_wTmpBtnFThreshold: BLK 2
000D
IF CSD_SLIDERS_EXIST
; Local slider variables
_CSD_wDenom: ; Denominator is also the Ctrd Pos
CSD_wDenom: BLK 2
_CSD_dNumer: ; Numerator also contains the Ctrd Pos
CSD_dNumer: BLK 2
_CSD_wCtrdPos: ; Ctrd Pos is LMSB and LLSB of the numerator
CSD_wCtrdPos: BLK 2
_CSD_dMultTempX: ; Temp multiplication register
CSD_dMultTempX: BLK 4
_CSD_dMultTempY: ; Temp multiplication register
CSD_dMultTempY: BLK 4
_CSD_bCurSlider:
CSD_bCurSlider: BLK 1
_CSD_bCurCtrdStartPos: ; Temp current centroid start position
CSD_bCurCtrdStartPos: BLK 1
_CSD_bCurCtrdSize: ; Temp current centroid size
CSD_bCurCtrdSize: BLK 1
_CSD_bBiggestCtrdStartPos: ; Temp biggest centroid start position
CSD_bBiggestCtrdStartPos: BLK 1
_CSD_bBiggestCtrdSize: ; Temp biggest centroid size
CSD_bBiggestCtrdSize: BLK 1
_CSD_wCurPkValue: ; Temp current peak
CSD_wCurPkValue: BLK 2
_CSD_bCurPkPos: ; Temp current slider pointer
CSD_bCurPkPos: BLK 1
_CSD_bDiplexInfo: ; Temp flag for diplex of current group
CSD_bDiplexInfo: BLK 1
_CSD_bDiplexMSB: ; Temp that contains the address of the rom diplex table
CSD_bDiplexMSB: BLK 1
_CSD_bDiplexLSB:
CSD_bDiplexLSB: BLK 1
_CSD_wDivBtwSns: ; Temp divisions between sensors
CSD_wDivBtwSns: BLK 2
ENDIF
AREA bss
; Global variables
0000 _CSD_waSnsBaseline: ; Baseline, one entry for each sensor
0000 CSD_waSnsBaseline: BLK (2*CSD_TotalSensorCount)
0020 _CSD_waSnsDiff: ; ABS Diff of raw and and baseline, one entry for each sensor
0020 CSD_waSnsDiff: BLK (2*CSD_TotalSensorCount)
0040 _CSD_baSnsBucket: ; Baseline difference accumulator, one entry for each sensor
0040 CSD_baSnsBucket: BLK CSD_TotalSensorCount
0050 _CSD_baBtnFThreshold: ; Containing variable finger threshold for each button
0050 CSD_baBtnFThreshold: BLK CSD_TotalSensorCount
0060 _CSD_baSnsOnMask: ; Sensor mask array containing on/off state of sensors
0060 CSD_baSnsOnMask: BLK ((CSD_TotalSensorCount-1)/8)+1
0062 _CSD_baSnsDebounce:
0062 CSD_baSnsDebounce: BLK CSD_TotalSensorCount
0072 _CSD_baLowBaselineReset:
0072 CSD_baLowBaselineReset: BLK CSD_TotalSensorCount
0082
IF CSD_SLIDERS_EXIST
_CSD_waCtrdPkValue: ; Array containing peak value of centroid
CSD_waCtrdPkValue: BLK (2*CSD_SliderCount)
ENDIF
; Global variables
export _CSD_waSnsBaseline
export CSD_waSnsBaseline
export _CSD_waSnsDiff
export CSD_waSnsDiff
export _CSD_baBtnFThreshold
export CSD_baBtnFThreshold
export _CSD_baSnsOnMask
export CSD_baSnsOnMask
; Local variables
export _CSD_fIsPressed
export CSD_fIsPressed
export _CSD_bEndOfArray
export CSD_bEndOfArray
export _CSD_bCurPos
export CSD_bCurPos
export _CSD_bSnsMaskPtr
export CSD_bSnsMaskPtr
IF CSD_SLIDERS_EXIST
; Local slider variables
export _CSD_wDenom
export CSD_wDenom
export _CSD_wCtrdPos
export CSD_wCtrdPos
export _CSD_dNumer
export CSD_dNumer
export _CSD_dMultTempX
export CSD_dMultTempX
export _CSD_dMultTempY
export CSD_dMultTempY
export _CSD_bCurCtrdStartPos
export CSD_bCurCtrdStartPos
export _CSD_bCurCtrdSize
export CSD_bCurCtrdSize
export _CSD_bBiggestCtrdStartPos
export CSD_bBiggestCtrdStartPos
export _CSD_bBiggestCtrdSize
export CSD_bBiggestCtrdSize
export _CSD_wCurPkValue
export CSD_wCurPkValue
export _CSD_bCurPkPos
export CSD_bCurPkPos
export _CSD_bDiplexMSB
export CSD_bDiplexMSB
export _CSD_bDiplexLSB
export CSD_bDiplexLSB
export _CSD_wDivBtwSns
export CSD_wDivBtwSns
ENDIF
;@PSoC_UserCode_INIT@ (Do not change this line.)
;---------------------------------------------------
; Insert your custom declarations below this banner
;---------------------------------------------------
;------------------------
; User Includes
;------------------------
;------------------------
; User Constant Definitions
;------------------------
;------------------------
; User Variable Allocation
;------------------------
;---------------------------------------------------
; Insert your custom declarations above this banner
;---------------------------------------------------
;@PSoC_UserCode_END@ (Do not change this line.)
;------------------------
; Constant Definitions
;------------------------
AREA UserModules (ROM, REL, CON)
; For using two byte variables
0001 LSB: equ 1
0000 MSB: equ 0
0000
0000 ; For using four byte variables
0000 MMSB: equ 0
0001 MLSB: equ 1
0002 LMSB: equ 2
0003 LLSB: equ 3
0000
0000 .SECTION
0000 ;-----------------------------------------------------------------------------
0000 ; FUNCTION NAME: CSD_UpdateSensorBaseline(BYTE bSensorNum)
0000 ;
0000 ; DESCRIPTION:
0000 ; Update baseline for one sensor. The algorithm is as follows:
0000 ; If difference count is negative baseline become raw count
0000 ; If difference count is above noise threshold do not update
0000 ; Else difference count is positive and within noise threshold so
0000 ; difference is halved and added to the bucket. When the bucket
0000 ; reaches the threshold the baseline increments and the bucket resets
0000 ;-----------------------------------------------------------------------------
0000 ; STACK USAGE: 0 BYTES
0000 ;
0000 ; ARGUMENTS:
0000 ; A => Sensor Number
0000 ;
0000 ; RETURNS:
0000 ; Nothing
0000 ;
0000 ; SIDE EFFECTS:
0000 ; The A and X registers may be modified by this or future implementations
0000 ; of this function. The same is true for all RAM page pointer registers in
0000 ; the Large Memory Model. When necessary, it is the calling function's
0000 ; responsibility to perserve their values across calls to fastcall16
0000 ; functions.
0000 ;
0000 CSD_UpdateSensorBaseline:
0000 _CSD_UpdateSensorBaseline:
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_2 )
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
or F, FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_3 )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 70BF and F, ~FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -