亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csr_1hl.asm

?? 此文件是一個源程序代碼
?? ASM
?? 第 1 頁 / 共 4 頁
字號:
;;*****************************************************************************
;;  FILENAME: CSR_1HL.asm
;;   Version: 1.1, Updated on 2005/10/13 at 09:13:22
;;  Generated by PSoC Designer ver 4.2  b1013 : 02 September, 2004
;;
;;  DESCRIPTION: CSR User Module high level software 
;;                implementation file for the 21xxx PSoC family of devices.
;;-----------------------------------------------------------------------------
;;  Copyright (c) Cypress MicroSystems 2000-2005. All Rights Reserved.
;;*****************************************************************************
;;*****************************************************************************

include "m8c.inc"
include "memory.inc"
include "CSR_1.inc"

;-----------------------------------------------
; Global Symbols
;-----------------------------------------------

export _CSR_1_bUpdateBaseline
export  CSR_1_bUpdateBaseline
IF CSR_1_SLIDERS_EXIST
export _CSR_1_bGetCentroidPos
export  CSR_1_bGetCentroidPos
ENDIF
;-----------------------------------------------
; Variable Allocation
;-----------------------------------------------
AREA InterruptRAM (RAM, REL, CON)

; Global variables
_CSR_1_iaSwBaseline:                              ; Baseline, one entry for each switch
 CSR_1_iaSwBaseline:                      BLK  (2*CSR_1_TotalSwitchCount)
_CSR_1_iaSwDiff:                                  ; ABS Diff of raw and and baseline, one entry for each switch
 CSR_1_iaSwDiff:                          BLK  (2*CSR_1_TotalSwitchCount)
_CSR_1_baBtnFThreshold:                           ; Containing variable finger threshold for each button
 CSR_1_baBtnFThreshold:                   BLK  CSR_1_ButtonCount
_CSR_1_baSwOnMask:                                ; Switch mask array containing on/off state of switches
 CSR_1_baSwOnMask:                        BLK  ((CSR_1_TotalSwitchCount-1)/8)+1
_CSR_1_bBaselineUpdateTimer:                      ; Adjusts baseline when signal is within noise threshold
 CSR_1_bBaselineUpdateTimer:              BLK  1  
_CSR_1_fIsBLValid:                                ; Flag if baseline is valid
 CSR_1_fIsBLValid:                        BLK  1

IF CSR_1_ESD_DETECTION
; ESD variables used for finger detection
_CSR_1_iaSwDeriv:                                 ; Derivative of raw, one entry for each switch
 CSR_1_iaSwDeriv:                         BLK  (2*CSR_1_TotalSwitchCount)
_CSR_1_iaSwPrevResult:                            ; Previous raw result, one entry for each switch
 CSR_1_iaSwPrevResult:                    BLK  (2*CSR_1_TotalSwitchCount)
_CSR_1_baESDDebounce:                             ; Array containing invalid raw data counter to reinstate BL 
 CSR_1_baESDDebounce:                     BLK  CSR_1_TotalSwitchCount
_CSR_1_baBaselineResetCounter:                    ; Containing count to update baseline on finger press on startup
 CSR_1_baBaselineResetCounter:            BLK  CSR_1_TotalSwitchCount
_CSR_1_bAbnormalTimer:                            ; If an ESD event occurs, this timer prevents button presses
 CSR_1_bAbnormalTimer:					 BLK  1
ENDIF

IF CSR_1_SLIDERS_EXIST
; Global slider variables
_CSR_1_baCtrdStartPos:                            ; Array containing centroid starting position
 CSR_1_baCtrdStartPos:	                 BLK  CSR_1_SliderCount
_CSR_1_baCtrdSize:                                ; Array containing centroid size
 CSR_1_baCtrdSize:		                 BLK  CSR_1_SliderCount
_CSR_1_baCtrdPkPos:                               ; Array containing peak position of centroid
 CSR_1_baCtrdPkPos:                       BLK  CSR_1_SliderCount
_CSR_1_iaCtrdPkValue:                             ; Array containing peak value of centroid
 CSR_1_iaCtrdPkValue:                     BLK  (2*CSR_1_SliderCount)
ENDIF

; Local variables
_CSR_1_bEndOfArray:                               ; Temp pointer variable
 CSR_1_bEndOfArray:                       BLK  1  
_CSR_1_bDivBtwSw:                                 ; Temp divisions between switches
 CSR_1_bDivBtwSw:                         BLK  1
_CSR_1_fIsPressed:                                ; Temp variable for if any switch is pressed
 CSR_1_fIsPressed:                        BLK  1
_CSR_1_bCurPos:                                   ; Temp position variable
 CSR_1_bCurPos:                           BLK  1  
_CSR_1_bCurPosMask:                               ; Temp switch mask used in UpdateBaseline
 CSR_1_bCurPosMask:                       BLK  1
_CSR_1_bSwMaskPtr:                                ; Temp switch mask pointer used in UpdateBaseline
 CSR_1_bSwMaskPtr:                        BLK  1
_CSR_1_bStartIndex:                               ; Temp Start index
 CSR_1_bStartIndex:						 BLK  1

IF CSR_1_SLIDERS_EXIST
; Local slider variables
_CSR_1_bCtrdPos:                                  ; Temp position variable
 CSR_1_bCtrdPos:                          BLK  1  
_CSR_1_iDenom:                                    ; Temp denominator
 CSR_1_iDenom:                            BLK  2
_CSR_1_iNumer:                                    ; Temp numerator
 CSR_1_iNumer:                            BLK  3
_CSR_1_iMultTempX:                                ; Temp multiplication register
 CSR_1_iMultTempX:                        BLK  3
_CSR_1_iMultTempY:                                ; Temp multiplication register
 CSR_1_iMultTempY:                        BLK  3
_CSR_1_bCurSlider:                        
 CSR_1_bCurSlider:                        BLK  1
_CSR_1_bCurCtrdStartPos:                          ; Temp current centroid start position
 CSR_1_bCurCtrdStartPos:                  BLK  1
_CSR_1_bCurCtrdSize:                              ; Temp current centroid size
 CSR_1_bCurCtrdSize:                      BLK  1
_CSR_1_bBiggestCtrdStartPos:                      ; Temp biggest centroid start position
 CSR_1_bBiggestCtrdStartPos:              BLK  1
_CSR_1_bBiggestCtrdSize:                          ; Temp biggest centroid size
 CSR_1_bBiggestCtrdSize:                  BLK  1
_CSR_1_iCurPkValue:                               ; Temp current peak
 CSR_1_iCurPkValue:                       BLK  2
_CSR_1_bCurPkPos:                                 ; Temp current slider pointer
 CSR_1_bCurPkPos:                         BLK  1
_CSR_1_bDiplexInfo:                               ; Temp flag for diplex of current group
 CSR_1_bDiplexInfo:						 BLK  1
_CSR_1_bDiplexMSB:                                ; Temp that contains the address of the rom diplex table
 CSR_1_bDiplexMSB:                        BLK  1
_CSR_1_bDiplexLSB:
 CSR_1_bDiplexLSB:                        BLK  1
ENDIF
	 
; Global variables
export _CSR_1_iaSwBaseline
export  CSR_1_iaSwBaseline
export _CSR_1_iaSwDiff
export  CSR_1_iaSwDiff
export _CSR_1_baBtnFThreshold
export  CSR_1_baBtnFThreshold
export _CSR_1_baSwOnMask
export  CSR_1_baSwOnMask
export _CSR_1_bBaselineUpdateTimer
export  CSR_1_bBaselineUpdateTimer
export _CSR_1_fIsBLValid
export  CSR_1_fIsBLValid

IF CSR_1_ESD_DETECTION
; ESD variables
export _CSR_1_iaSwDeriv
export  CSR_1_iaSwDeriv
export _CSR_1_iaSwPrevResult
export  CSR_1_iaSwPrevResult
export _CSR_1_baESDDebounce
export  CSR_1_baESDDebounce
export _CSR_1_baBaselineResetCounter
export  CSR_1_baBaselineResetCounter
export _CSR_1_bAbnormalTimer
export  CSR_1_bAbnormalTimer
ENDIF

IF CSR_1_SLIDERS_EXIST
; Global slider variables
export _CSR_1_baCtrdStartPos
export  CSR_1_baCtrdStartPos
export _CSR_1_baCtrdSize
export  CSR_1_baCtrdSize
export _CSR_1_baCtrdPkPos
export  CSR_1_baCtrdPkPos
export _CSR_1_iaCtrdPkValue
export  CSR_1_iaCtrdPkValue
ENDIF

; Local variables
export _CSR_1_bDivBtwSw
export  CSR_1_bDivBtwSw
export _CSR_1_fIsPressed
export  CSR_1_fIsPressed
export _CSR_1_bEndOfArray
export  CSR_1_bEndOfArray
export _CSR_1_bCurPos
export  CSR_1_bCurPos
export _CSR_1_bCurPosMask
export  CSR_1_bCurPosMask
export _CSR_1_bSwMaskPtr
export  CSR_1_bSwMaskPtr

IF CSR_1_SLIDERS_EXIST
; Local slider variables
export _CSR_1_bCtrdPos
export  CSR_1_bCtrdPos
export _CSR_1_iDenom
export  CSR_1_iDenom
export _CSR_1_iNumer
export  CSR_1_iNumer
export _CSR_1_iMultTempX
export  CSR_1_iMultTempX
export _CSR_1_iMultTempY
export  CSR_1_iMultTempY
export _CSR_1_bCurCtrdStartPos
export  CSR_1_bCurCtrdStartPos
export _CSR_1_bCurCtrdSize
export  CSR_1_bCurCtrdSize
export _CSR_1_bBiggestCtrdStartPos
export  CSR_1_bBiggestCtrdStartPos
export _CSR_1_bBiggestCtrdSize
export  CSR_1_bBiggestCtrdSize
export _CSR_1_iCurPkValue
export  CSR_1_iCurPkValue
export _CSR_1_bCurPkPos
export  CSR_1_bCurPkPos
export _CSR_1_bDiplexMSB
export  CSR_1_bDiplexMSB
export _CSR_1_bDiplexLSB
export  CSR_1_bDiplexLSB
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)

LSB:  equ  1
MSB:  equ  0

FINGER_THRESHOLD:       equ   ah
NOISE_THRESHOLD:        equ   5h
BASELINE_UPDATE_RATE:   equ   10h
ESD_DEBOUNCE:           equ   0h

; The Group Table defines each of the groups of switches or sliders.  There
; is one entry for each slider plus one for the free switches.  The first
; entry is always the free switchs.  Each entry is four bytes.  

; The first byte is the index in the Switch Table where the group starts.  

; The second byte is how many switches are in that group.  For example, in 
; a system where there are 6 free switches and two sliders, the first with 
; 8 switches and the second with 4, the table would look like the following.
;  db 0, 8
;  db 8, 8
;  db 16, 4
;
; The third byte signifies whether the slider is diplexed or not (1 is 
; diplexed, 0 is not diplexed).
;
; The fourth byte is the fixed point multiplier that the slider's
; calculated centroid will be multiplied by to achieve the resolution 
; desired in the CSR wizard.  The multiplier is a byte containing the 
; following definition:  
;    bit 7   bit 6   bit 5   bit 4   bit 3   bit 2   bit 1   bit 0
;     x8	  x4      x2      x1     x1/2    x1/4    x1/8    x1/16
; The formula for the resolution is:
;    Resolution = (SwitchesInSlider - 1) * Multiplier
; For example, if you had a 10 switch slider and you wanted a 
; resolution of 100, the multiplier would need to be 11 1/8 to get
; the closest approximation (using sixteenths).  Therefore the 
; fixed point value would be 0xb2 (8+2+1+1/8)
 
; There are 0x1 groups counting the free switches.
 CSR_1_Group_Table:
_CSR_1_Group_Table:
; Group Table:
;    Origin    Count    Diplex?    SliceMultiplier
 db   0x0,      0x3,	 0x0,	    0x00 ; Buttons
 db   0x3,	    0x8,	 0x3,	    0x60 ; Slider 1


; Diplex table data are produced for a group only when the group is a 
; slider and is also diplexed.  Otherwise a label is created but no data
; is placed.  The data represents the physical representation of the 
; switches in their location on the PCB.  A label containing the pointer 
; to the corresponding table is also produced for referencing in the high-
; level centroid calculation function.
DiplexTable_0:
; This group is not a diplexed slider
DiplexTable_1:
	db	0,1,2,3,4,5,6,7,0,3,6,1,4,7,2,5	// 8 switch slider


 CSR_1_Diplex_Table:
_CSR_1_Diplex_Table:
	db >DiplexTable_0, <DiplexTable_0
	db >DiplexTable_1, <DiplexTable_1


.SECTION
;-----------------------------------------------------------------------------
;  FUNCTION NAME: CSR_1_GetBaseline(void)
;
;  DESCRIPTION:
;      Gathers the baseline for all switches.
;-----------------------------------------------------------------------------
;  STACK USAGE: none
;
;  RAM VARIABLES USED: CSR_1_iaSwResult, 
;      CSR_1_iaSwBaseline, CSR_1_fIsBLValid
;
;  ARGUMENTS: 
;      None 
;   
;  RETURNS:    
;      None, baseline is now updated to current value for all switches
;
;  SIDE EFFECTS: 
;    The A and X registers may be modified by this or future implementations
;    of this function.  The same is true for all RAM page pointer registers in
;    the Large Memory Model.  When necessary, it is the calling function's
;    responsibility to perserve their values across calls to fastcall16 
;    functions.
;
CSR_1_GetBaseline:
   ; Define baseline for all switches for the first time
   RAM_X_POINTS_TO_INDEXPAGE
   RAM_SETPAGE_IDX 0 ; ram will always be in interrupt ram area
   mov X, 0
.DefineSwitchBaseline:
   tst [X+CSR_1_iaSwResult+MSB], 0xC0 ; check for raw beyond 0x3fff
   jz .StoreRawIntoBaseline ; If raw counts is greater than 0x3fff, baseline will wrap, force to max
   mov [X+CSR_1_iaSwBaseline+MSB], 0xff
   mov [X+CSR_1_iaSwBaseline+LSB], 0xff
   jmp .StoreNextSwitchesBaseline
.StoreRawIntoBaseline:
   mov A, [X+CSR_1_iaSwResult+MSB]
   mov [X+CSR_1_iaSwBaseline+MSB], A
IF CSR_1_ESD_DETECTION
   mov [X+CSR_1_iaSwPrevResult+MSB], A
ENDIF
   mov A, [X+CSR_1_iaSwResult+LSB]
   mov [X+CSR_1_iaSwBaseline+LSB], A
IF CSR_1_ESD_DETECTION
   mov [X+CSR_1_iaSwPrevResult+LSB], A
ENDIF
   asl [X+CSR_1_iaSwBaseline+LSB] ; Multiply by four for IIR filter resolution
   rlc [X+CSR_1_iaSwBaseline+MSB]
   asl [X+CSR_1_iaSwBaseline+LSB]
   rlc [X+CSR_1_iaSwBaseline+MSB]
.StoreNextSwitchesBaseline:
   inc X
   inc X
   mov A, X
   cmp A, CSR_1_TotalSwitchCount*2
   jc .DefineSwitchBaseline

   mov [CSR_1_bBaselineUpdateTimer], BASELINE_UPDATE_RATE ; reset the baseline counter

   RAM_X_POINTS_TO_STACKPAGE
   ret
.ENDSECTION

.SECTION
;-----------------------------------------------------------------------------
;  FUNCTION NAME: CSR_1_UpdateBaselineIIR(void)
;
;  DESCRIPTION:
;      Updates baseline with 1/8 + 7/8 IIR for all switches.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
高清不卡一二三区| 国产久卡久卡久卡久卡视频精品| 国产欧美一区二区精品性色超碰| 激情久久五月天| 91精品久久久久久蜜臀| 国产九色sp调教91| 一区二区日韩电影| 久久蜜桃av一区二区天堂| 日韩精品中文字幕在线一区| 国产亚洲一区二区三区四区| 蜜臀av一级做a爰片久久| av福利精品导航| 亚洲6080在线| 亚洲成人av资源| 99精品在线免费| 国产不卡在线一区| 国模少妇一区二区三区| 成人午夜精品一区二区三区| 色诱亚洲精品久久久久久| 91精品欧美一区二区三区综合在| 欧美精品一区二区三区蜜桃视频| 亚洲精品乱码久久久久久久久| 日韩av电影天堂| 欧美制服丝袜第一页| 国产午夜亚洲精品午夜鲁丝片| 亚洲一区二三区| 99re这里只有精品首页| 久久蜜臀中文字幕| 亚洲国产一区视频| 99精品视频中文字幕| 久久久99久久精品欧美| 另类小说一区二区三区| 欧美三级电影精品| 亚洲大片一区二区三区| 欧美亚男人的天堂| 一区二区三区资源| 欧美另类z0zxhd电影| 久久嫩草精品久久久精品| 五月综合激情网| 欧美日韩性生活| 亚洲午夜免费福利视频| 欧美精品日韩综合在线| 亚洲一区二区三区四区五区中文| 欧美三级视频在线观看 | 51精品视频一区二区三区| 久久九九99视频| 午夜天堂影视香蕉久久| 欧美日韩亚洲不卡| 黄一区二区三区| 亚洲午夜激情av| 欧美一区二区三区男人的天堂| 国产永久精品大片wwwapp| 日本一区二区成人| 欧美日韩免费一区二区三区| 精品综合久久久久久8888| 亚洲天堂精品在线观看| 视频在线观看一区| 色偷偷久久一区二区三区| 五月天网站亚洲| 一区精品在线播放| 正在播放亚洲一区| 91免费观看视频| 国产精品自在在线| 午夜免费久久看| 亚洲欧美综合另类在线卡通| 26uuu精品一区二区三区四区在线| 亚洲免费观看高清完整版在线 | 99久久精品一区二区| 午夜欧美电影在线观看| 国产精品传媒视频| 久久久久88色偷偷免费| 欧美日韩亚洲高清一区二区| 成人av中文字幕| 岛国精品在线播放| 久久精品欧美日韩精品 | 欧美网站大全在线观看| 懂色av一区二区三区免费看| 精品亚洲国产成人av制服丝袜| 亚洲韩国一区二区三区| 一区二区三区在线免费播放| 色婷婷国产精品| 中文字幕免费观看一区| 欧美疯狂做受xxxx富婆| 在线一区二区三区做爰视频网站| 91在线观看污| 久久9热精品视频| 有坂深雪av一区二区精品| 午夜伦欧美伦电影理论片| 国产精品一区一区三区| 欧美在线观看视频一区二区三区| 欧美tk—视频vk| 日精品一区二区| 色婷婷av一区二区三区gif | 成人视屏免费看| 色哟哟一区二区在线观看| 精品久久免费看| 日韩和的一区二区| 欧美日韩国产综合草草| 中文字幕亚洲区| 成人动漫av在线| 久久青草欧美一区二区三区| 日韩制服丝袜先锋影音| 93久久精品日日躁夜夜躁欧美| 欧美精品一级二级| 中文字幕一区二区三区精华液| 久久成人综合网| 国产成人福利片| 欧美巨大另类极品videosbest | 久久久青草青青国产亚洲免观| 久久久久久久久久美女| 亚洲欧洲日产国产综合网| 日本不卡免费在线视频| 欧美在线免费观看视频| 午夜精品福利视频网站| 8v天堂国产在线一区二区| 免费欧美在线视频| 日韩一区二区高清| 中文字幕在线不卡| 国产成人亚洲精品狼色在线 | 日本少妇一区二区| av一二三不卡影片| 日韩欧美成人激情| 美腿丝袜亚洲三区| 欧美精品乱码久久久久久按摩| 国产精品人妖ts系列视频| 国产一区二区三区免费看| 精品欧美一区二区三区精品久久| 亚洲精品乱码久久久久| 色综合久久九月婷婷色综合| 欧美激情综合五月色丁香小说| 日本亚洲最大的色成网站www| 欧美麻豆精品久久久久久| 日本欧美韩国一区三区| 久久综合色婷婷| 9色porny自拍视频一区二区| 一区二区三区资源| 欧美一区二区三区播放老司机| 国产精品一级黄| 亚洲激情五月婷婷| 久久久久免费观看| 日本高清不卡一区| 精东粉嫩av免费一区二区三区| 国产蜜臀97一区二区三区| 91性感美女视频| 精品在线播放免费| 亚洲日本护士毛茸茸| 欧美精品一区二区三区蜜桃| 色美美综合视频| 成人黄色片在线观看| 丝袜国产日韩另类美女| 国产精品久久久久久久久晋中| 欧美日韩精品欧美日韩精品一| 久久精品日产第一区二区三区高清版| 青青草国产精品97视觉盛宴 | 国产成人综合亚洲网站| 青青草伊人久久| 麻豆久久久久久| 国产自产2019最新不卡| 国产一区福利在线| 国产美女在线精品| www.久久精品| 91丨porny丨首页| 麻豆视频观看网址久久| 日韩成人av影视| 日本成人在线电影网| 日韩国产欧美一区二区三区| 亚洲精品成人天堂一二三| 亚洲欧洲精品成人久久奇米网| 国产亚洲欧美日韩俺去了| 国产日韩在线不卡| 亚洲欧美综合色| 亚洲成av人片一区二区梦乃| 亚洲美女免费在线| 天天综合天天做天天综合| 日韩国产欧美在线观看| 麻豆中文一区二区| 成人三级在线视频| 一本一道久久a久久精品| 欧美体内she精高潮| 欧美一级二级在线观看| 国产精品免费视频一区| 亚洲视频在线一区| 午夜精品久久久久久久| 国产91精品入口| 欧美日韩你懂得| 国产精品久久久久影视| 蜜桃视频免费观看一区| 成人免费毛片app| 精品国产髙清在线看国产毛片| 国产精品国产精品国产专区不片| 蜜臀精品一区二区三区在线观看| 男女激情视频一区| 成人av电影在线| 亚洲色图视频免费播放| 99在线热播精品免费| 亚洲视频在线观看一区| 91理论电影在线观看| 中文字幕在线一区免费| 99视频精品在线| 亚洲欧洲中文日韩久久av乱码|