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

📄 cmx_csd_chan.lis

📁  PSoC(可编程片上系统)是Cypress半导体公司生产的包含有8位微处理器核和数字与模拟混合的信号阵列芯片
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0015           
 0015           .UpdGroupBaselinesLoop:                                      ; Loop through the sensor group
 0015 10           push  X
 0016 08           push  A
 0017 7C0000       lcall  CSD_UpdateSensorBaseline
 001A 18           pop   A
 001B 74           inc   A
 001C 20           pop   X
 001D 79           dec   X
 001E              
 001E BFF6         jnz   .UpdGroupBaselinesLoop
 0020           
                   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_LARGE_MEMORY_MODEL )
                   IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                      and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
                      or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_11b
                   ENDIF
                   ENDIF ;  PGMODE LOCKED
                   IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                      and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
                      or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_10b
                   ENDIF
                   ENDIF ; PGMODE FREE
                   ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
                   ENDIF ; RAM_USE_CLASS_2
                
                   IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_3 )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                   IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0020 703F            and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
 0022 71C0            or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_11b
                   ENDIF
                   ENDIF ;  PGMODE LOCKED
                   IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                      and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
                      or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_10b
                   ENDIF
                   ENDIF ; PGMODE FREE
                   ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
                   ENDIF ; RAM_USE_CLASS_3
                
                   IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_4 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_4
                
 0024 7F           ret
 0025           
 0025           .ENDSECTION
 0025           
 0025           .SECTION
 0025           ;-----------------------------------------------------------------------------
 0025           ;  FUNCTION NAME: CSD_InitializeGroupBaselines(BYTE bSnsGroup)
 0025           ;
 0025           ;  DESCRIPTION: Initialize baseline for a sensor group
 0025           ;-----------------------------------------------------------------------------
 0025           ;  STACK USAGE: 3 BYTES
 0025           ;
 0025           ;  ARGUMENTS: 
 0025           ;      A => Sensor Group
 0025           ;       Sensor Group = 0 for the independent sensors group
 0025           ;       Sensor Group = 1 for the first slider group
 0025           ;       Sensor Group = 2 for the second slider group
 0025           ;    
 0025           ;  RETURNS:    
 0025           ;      None
 0025           ;                
 0025           ;
 0025           ;  SIDE EFFECTS: 
 0025           ;    The A and X registers may be modified by this or future implementations
 0025           ;    of this function.  The same is true for all RAM page pointer registers in
 0025           ;    the Large Memory Model.  When necessary, it is the calling function's
 0025           ;    responsibility to perserve their values across calls to fastcall16 
 0025           ;    functions.
 0025           ;
 0025           
 0025            CSD_InitializeGroupBaselines:
 0025           _CSD_InitializeGroupBaselines:
                   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 )
 0025 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 )
 0027 62D000          mov reg[CUR_PP], 0
                   ENDIF
                   
                ; First get the starting location and size of this sensor group
 002A 64           asl A ; multiply by six to get group offset
 002B 5300         mov [CSD_bSnsMaskPtr], A ; use as temp
 002D 64           asl A
 002E 0400         add [CSD_bSnsMaskPtr], A
 0030 5100         mov A, [CSD_bSnsMaskPtr]
 0032 5C           mov X, A
 0033 F000         index CSD_Group_Table
 0035 4B           swap A, X
 0036 74           inc A
 0037 F000         index CSD_Group_Table
 0039 4B           swap A, X ; A now has starting sensor number, x has size of group
 003A           
 003A           .InitGroupBaselinesLoop:                                      ; Loop through the sensor group
 003A 10           push  X
 003B 08           push  A
 003C 7C0000       lcall  CSD_InitializeSensorBaseline
 003F 18           pop   A
 0040 74           inc   A
 0041 20           pop   X
 0042 79           dec   X
 0043              
 0043 BFF6         jnz   .InitGroupBaselinesLoop
 0045           
                   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_LARGE_MEMORY_MODEL )
                   IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                      and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
                      or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_11b
                   ENDIF
                   ENDIF ;  PGMODE LOCKED
                   IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                      and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
                      or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_10b
                   ENDIF
                   ENDIF ; PGMODE FREE
                   ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
                   ENDIF ; RAM_USE_CLASS_2
                
                   IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_3 )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                   IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
 0045 703F            and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
 0047 71C0            or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_11b
                   ENDIF
                   ENDIF ;  PGMODE LOCKED
                   IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
                   IF ( SYSTEM_LARGE_MEMORY_MODEL )
                      and   F, ~FLAG_PGMODE_MASK        ; NOTE: transition thru 00b state
                      or    F,  FLAG_PGMODE_MASK & FLAG_PGMODE_10b
                   ENDIF
                   ENDIF ; PGMODE FREE
                   ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
                   ENDIF ; RAM_USE_CLASS_3
                
                   IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_4 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_4
                
 0049 7F           ret
 004A           
 004A           .ENDSECTION
 004A           
 004A           .SECTION
 004A           ;-----------------------------------------------------------------------------
 004A           ;  FUNCTION NAME: CSD_ScanSensorGroup(BYTE bSnsGroup)
 004A           ;
 004A           ;  DESCRIPTION: Scans all sensors in a group
 004A           ;-----------------------------------------------------------------------------
 004A           ;  STACK USAGE: 3 BYTES
 004A           ;
 004A           ;  ARGUMENTS: 
 004A           ;      A => Sensor Group
 004A           ;       Sensor Group = 0 for the independent sensors group
 004A           ;       Sensor Group = 1 for the first slider group
 004A           ;       Sensor Group = 2 for the second slider group
 004A           ;    
 004A           ;  RETURNS:    
 004A           ;      None
 004A           ;                          
 004A           ;
 004A           ;  SIDE EFFECTS: 
 004A           ;    The A and X registers may be modified by this or future implementations
 004A           ;    of this function.  The same is true for all RAM page pointer registers in
 004A           ;    the Large Memory Model.  When necessary, it is the calling function's
 004A           ;    responsibility to perserve their values across calls to fastcall16 
 004A           ;    functions.
 004A           ;
 004A           
 004A            CSD_ScanSensorGroup:
 004A           _CSD_ScanSensorGroup:
                   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_PGMOD

⌨️ 快捷键说明

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