📄 csdhl.lis
字号:
export _CSD_bDebounce:
export CSD_bDebounce:
export _CSD_bLowBaselineReset:
export CSD_bLowBaselineReset:
; 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
000D _CSD_wDenom: ; Denominator is also the Ctrd Pos
000D CSD_wDenom: BLK 2
000F _CSD_dNumer: ; Numerator also contains the Ctrd Pos
000F CSD_dNumer: BLK 2
0011 _CSD_wCtrdPos: ; Ctrd Pos is LMSB and LLSB of the numerator
0011 CSD_wCtrdPos: BLK 2
0013 _CSD_dMultTempX: ; Temp multiplication register
0013 CSD_dMultTempX: BLK 4
0017 _CSD_dMultTempY: ; Temp multiplication register
0017 CSD_dMultTempY: BLK 4
001B _CSD_bCurSlider:
001B CSD_bCurSlider: BLK 1
001C _CSD_bCurCtrdStartPos: ; Temp current centroid start position
001C CSD_bCurCtrdStartPos: BLK 1
001D _CSD_bCurCtrdSize: ; Temp current centroid size
001D CSD_bCurCtrdSize: BLK 1
001E _CSD_bBiggestCtrdStartPos: ; Temp biggest centroid start position
001E CSD_bBiggestCtrdStartPos: BLK 1
001F _CSD_bBiggestCtrdSize: ; Temp biggest centroid size
001F CSD_bBiggestCtrdSize: BLK 1
0020 _CSD_wCurPkValue: ; Temp current peak
0020 CSD_wCurPkValue: BLK 2
0022 _CSD_bCurPkPos: ; Temp current slider pointer
0022 CSD_bCurPkPos: BLK 1
0023 _CSD_bDiplexInfo: ; Temp flag for diplex of current group
0023 CSD_bDiplexInfo: BLK 1
0024 _CSD_bDiplexMSB: ; Temp that contains the address of the rom diplex table
0024 CSD_bDiplexMSB: BLK 1
0025 _CSD_bDiplexLSB:
0025 CSD_bDiplexLSB: BLK 1
0026 _CSD_wDivBtwSns: ; Temp divisions between sensors
0026 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)
000E _CSD_waSnsDiff: ; ABS Diff of raw and and baseline, one entry for each sensor
000E CSD_waSnsDiff: BLK (2*CSD_TotalSensorCount)
001C _CSD_baSnsBucket: ; Baseline difference accumulator, one entry for each sensor
001C CSD_baSnsBucket: BLK CSD_TotalSensorCount
0023 _CSD_baBtnFThreshold: ; Containing variable finger threshold for each button
0023 CSD_baBtnFThreshold: BLK CSD_TotalSensorCount
002A _CSD_baSnsOnMask: ; Sensor mask array containing on/off state of sensors
002A CSD_baSnsOnMask: BLK ((CSD_TotalSensorCount-1)/8)+1
002B _CSD_baSnsDebounce:
002B CSD_baSnsDebounce: BLK CSD_TotalSensorCount
0032 _CSD_baLowBaselineReset:
0032 CSD_baLowBaselineReset: BLK CSD_TotalSensorCount
0039
IF CSD_SLIDERS_EXIST
0039 _CSD_waCtrdPkValue: ; Array containing peak value of centroid
0039 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_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -