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

📄 cmx_csd_chan.lis

📁  PSoC(可编程片上系统)是Cypress半导体公司生产的包含有8位微处理器核和数字与模拟混合的信号阵列芯片
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 REG_PRESERVE CUR_PP
 0000                 REG_PRESERVE IDX_PP
 0000                 REG_PRESERVE MVR_PP
 0000                 REG_PRESERVE MVW_PP
 0000              ENDIF
 0000              macro ISR_RESTORE_PAGE_POINTERS
 0000              IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0000                 REG_RESTORE MVW_PP
 0000                 REG_RESTORE MVR_PP
 0000                 REG_RESTORE IDX_PP
 0000                 REG_RESTORE CUR_PP
 0000              ENDIF
 0000           CSD_WITH_PWM:                          equ 0h
 0000           CSD_REF_VALUE:                         equ 0x0
 0001           CSD_FEEDBACK_PIN:                      equ 1
 0000           CSD_FEEDBACK_P1_1:                     equ 0
 0001           CSD_FEEDBACK_P3_1:                     equ 1
 0002           CSD_FEEDBACK_P1_5:                     equ 2
 0000           
 0001           CSD_CAPACITOR_PIN:                     equ 1
 0001           CSD_CAPACITOR_P0_1:                    equ 1
 0002           CSD_CAPACITOR_P0_3:                    equ 2
 0000           
 0001           CSD_AUTORESET:                         equ 1
 0000           
 0000           ;--------------------------------------------------
 0000           ; Constants for Scan Speed values
 0000           ;--------------------------------------------------
 0000           CSD_ULTRA_FAST_SPEED:                  equ 0x00
 0001           CSD_FAST_SPEED:                        equ 0x01
 0002           CSD_NORMAL_SPEED:                      equ 0x02
 0003           CSD_SLOW_SPEED:                        equ 0x03
 0000           
 0000           ;--------------------------------------------------
 0000           ; Constants for Resolution values
 0000           ;--------------------------------------------------
 0009           CSD_MIN_RESOLUTION:                    equ 9
 0010           CSD_MAX_RESOLUTION:                    equ 16
 0000           
 0000           ;--------------------------------------------------
 0000           ; Constants for CSD API's
 0000           ;--------------------------------------------------
 0000           
 0001           CSD_ButtonCount:                       equ 1h
 0000           CSD_SliderCount:                       equ 0h
 0001           CSD_TotalSensorCount:                  equ 1h
 0000           
 0001           CSD_BUTTONS_EXIST:                     equ 1h
 0000           CSD_SLIDERS_EXIST:                     equ 0h
 0000           
 0000           CSD_HYSTERESIS:                                  equ 0h
 0003           CSD_Debounce:                                    equ 3h
 0032           CSD_LowBaselineReset:                            equ 32h
 0000           
 0064           CSD_FINGER_THRESHOLD:                            equ 64h
 000A           CSD_NOISE_THRESHOLD:                             equ ah
 0014           CSD_NEGATIVE_NOISE_THRESHOLD:                    equ 14h
 00C8           CSD_BASELINE_UPDATE_THRESHOLD:                   equ c8h
 0000           
 0000           ;--------------------------------------------------
 0000           ; Registers Address Constants for CSD
 0000           ;--------------------------------------------------
 0000           
 0020           CSD_CNT_FUNC_REG:                      equ 20h              ; CNT Function Reg
 0021           CSD_CNT_IN_REG:                        equ 21h              ; CNT Input Reg
 0022           CSD_CNT_OUT_REG:                       equ 22h              ; CNT Output Reg
 0020           CSD_CNT_COUNTER_REG:                   equ 20h              ; CNT Counter Reg
 0021           CSD_CNT_PERIOD_REG:                    equ 21h              ; CNT Period Reg
 0022           CSD_CNT_COMPARE_REG:                   equ 22h              ; CNT Compare Reg
 0023           CSD_CNT_CONTROL_REG:                   equ 23h              ; CNT Control Reg
 0000           
 0024           CSD_PRS_FUNC_LSB_REG:                  equ 24h              ; PRS LSB Function Reg
 0025           CSD_PRS_IN_LSB_REG:                    equ 25h              ; PRS LSB Input Reg
 0026           CSD_PRS_OUT_LSB_REG:                   equ 26h              ; PRS LSB Output Reg
 0027           CSD_PRS_CONTROL_LSB_REG:               equ 27h              ; PRS LSB Control Reg
 0024           CSD_PRS_SHIFT_LSB_REG:                 equ 24h              ; PRS LSB Shift Reg
 0025           CSD_PRS_POLY_LSB_REG:                  equ 25h              ; PRS LSB Polynomial Reg
 0026           CSD_PRS_SEED_LSB_REG:                  equ 26h              ; PRS LSB Seed Reg
 0000           
 0028           CSD_PRS_FUNC_MSB_REG:                  equ 28h              ; PRS MSB Function Reg
 0029           CSD_PRS_IN_MSB_REG:                    equ 29h              ; PRS MSB Input Reg
 002A           CSD_PRS_OUT_MSB_REG:                   equ 2ah              ; PRS MSB Output Reg
 002B           CSD_PRS_CONTROL_MSB_REG:               equ 2bh              ; PRS MSB Control Reg
 0028           CSD_PRS_SHIFT_MSB_REG:                 equ 28h              ; PRS MSB Shift Reg
 0029           CSD_PRS_POLY_MSB_REG:                  equ 29h              ; PRS MSB Polynimial Reg
 002A           CSD_PRS_SEED_MSB_REG:                  equ 2ah              ; PRS MSB Seed Reg
 0000           
 0076           CSD_ACE_CONTROL1_REG:                  equ 76h              ; CMP Control Reg
 0077           CSD_ACE_CONTROL2_REG:                  equ 77h              ; CMP Control Reg
 0000           
 0084           CSD_ASE_CONTROL_REG:                   equ 84h              ; CMP_REF Conrol Reg
 00E6           CSD_ADC_TRIM_REG:                      equ e6h              ; ADC Trim Register
 0069           CSD_ADC_CONTROL_REG:                   equ 69h              ; ADC Control Reg
 0000           
 0000           
 0000           DR_OFFSET:                             equ 00h
 0000           DM0_OFFSET:                            equ 00h              ; Bank 1
 0001           DM1_OFFSET:                            equ 01h              ; Bank 1
 0003           DM2_OFFSET:                            equ 03h              ; Bank 0
 00D8           MUX_OFFSET:                            equ MUX_CR0          ; Bank 1
 0000           
 0000           ;--------------------------------------------------
 0000           ; CSD Macro 'Functions'
 0000           ;--------------------------------------------------
 0000           
 0000           macro CSD_Counter_Start_M
 0000              or    reg[CSD_CNT_CONTROL_REG],  CSD_CNT_CONTROL_REG_START_BIT
 0000           macro CSD_Counter_Stop_M
 0000              and   reg[CSD_CNT_CONTROL_REG], ~CSD_CNT_CONTROL_REG_START_BIT
 0000           macro CSD_Counter_EnableInt_M
 0000              M8C_EnableIntMask CSD_CNT_INT_REG, CSD_CNT_INT_MASK
 0000           macro CSD_Counter_DisableInt_M
 0000              M8C_DisableIntMask CSD_CNT_INT_REG, CSD_CNT_INT_MASK
 00E0           CSD_CMP_CMPIntReg:                     equ  0e0h
 0004           CSD_CMP_CMPIntMask:                    equ  04h
 0000           
 0000           CSD_CMP_OFF:                           equ  0
 0001           CSD_CMP_ON:                            equ  1
 0000           
 0000           ;--------------------------------------------------
 0000           ; Constants for CSD_Counter API's.
 0000           ;--------------------------------------------------
 0000           
 0001           CSD_CNT_CONTROL_REG_START_BIT:         equ 0x01             ; Control register start bit
 00E1           CSD_CNT_INT_REG:                       equ 0x0e1
 0001           CSD_CNT_INT_MASK:                      equ 0x01
 0000           
 0000           ;--------------------------------------------------
 0000           ; Constants for CSD_Counter user defined values
 0000           ;--------------------------------------------------
 0000           
 00FF           CSD_CNT_PERIOD:                        equ 0xff
 0000           CSD_CNT_COMPARE_VALUE:                 equ 0x00
 0000           
 0000           ; end of file CSD.inc
 0000           
                export _CSD_UpdateGroupBaselines
                export  CSD_UpdateGroupBaselines
                export _CSD_InitializeGroupBaselines
                export  CSD_InitializeGroupBaselines
                export _CSD_ScanSensorGroup
                export  CSD_ScanSensorGroup
                export _CSD_GetGroupSensorIndex
                export  CSD_GetGroupSensorIndex
                
                
                AREA UserModules (ROM, REL)
                
                ; For using two byte variables
 0001           LSB:  equ  1
 0000           MSB:  equ  0
 0000           
 0000           .SECTION
 0000           ;-----------------------------------------------------------------------------
 0000           ;  FUNCTION NAME: CSD_UpdateGroupBaselines(BYTE bSnsGroup)
 0000           ;
 0000           ;  DESCRIPTION: Updates baseline for a sensor group
 0000           ;-----------------------------------------------------------------------------
 0000           ;  STACK USAGE: 3 BYTES
 0000           ;
 0000           ;  ARGUMENTS: 
 0000           ;      A => Sensor Group
 0000           ;       Sensor Group = 0 for the independent sensors group
 0000           ;       Sensor Group = 1 for the first slider group
 0000           ;       Sensor Group = 2 for the second slider group
 0000           ;    
 0000           ;  RETURNS:    
 0000           ;      None
 0000           ;                
 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           
 0000            CSD_UpdateGroupBaselines:
 0000           _CSD_UpdateGroupBaselines:
                   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
                   ENDIF ; RAM_USE_CLASS_3
                
                   IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_4 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_4
                
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0002 62D000          mov reg[CUR_PP], 0
                   ENDIF
                   
                ; First get the starting location and size of this sensor group
 0005 64           asl A ; multiply by six to get group offset
 0006 5300         mov [CSD_bSnsMaskPtr], A ; use as temp
 0008 64           asl A
 0009 0400         add [CSD_bSnsMaskPtr], A
 000B 5100         mov A, [CSD_bSnsMaskPtr]
 000D 5C           mov X, A
 000E F000         index CSD_Group_Table
 0010 4B           swap A, X
 0011 74           inc A
 0012 F000         index CSD_Group_Table
 0014 4B           swap A, X ; A now has starting sensor number, x has size of group

⌨️ 快捷键说明

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