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

📄 mousealgorithm.s

📁 陀螺仪程序
💻 S
📖 第 1 页 / 共 3 页
字号:
	.module mousealgorithm.c
	.area data(ram, con, rel)
_mode::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e mode _mode c
_lastMode::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e lastMode _lastMode c
_gyroYRaw::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYRaw _gyroYRaw s
_gyroZRaw::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZRaw _gyroZRaw s
_tempRaw::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e tempRaw _tempRaw s
_gyroYRaw1::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYRaw1 _gyroYRaw1 s
_gyroZRaw1::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZRaw1 _gyroZRaw1 s
_gyroYRaw2::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYRaw2 _gyroYRaw2 s
_gyroZRaw2::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZRaw2 _gyroZRaw2 s
_gyroYRaw3::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYRaw3 _gyroYRaw3 s
_gyroZRaw3::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZRaw3 _gyroZRaw3 s
_gyroTempY::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroTempY _gyroTempY L
_gyroTempZ::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroTempZ _gyroTempZ L
_gyroZBiasAv::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZBiasAv _gyroZBiasAv L
_gyroYBiasAv::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYBiasAv _gyroYBiasAv L
_tempBiasAv::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e tempBiasAv _tempBiasAv L
_gyroZMin::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZMin _gyroZMin s
_gyroZMax::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZMax _gyroZMax s
_gyroYMin::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYMin _gyroYMin s
_gyroYMax::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYMax _gyroYMax s
_gyroYBias::
	.blkb 4
	.area idata
	.word 0,2048
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYBias _gyroYBias L
_gyroZBias::
	.blkb 4
	.area idata
	.word 0,2048
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZBias _gyroZBias L
_tempBias::
	.blkb 4
	.area idata
	.word 0,2048
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e tempBias _tempBias L
_biasCounter::
	.blkb 2
	.area idata
	.word 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e biasCounter _biasCounter s
_motionDetected::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e motionDetected _motionDetected c
_lastSignY::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e lastSignY _lastSignY c
_lastSignZ::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e lastSignZ _lastSignZ c
_signYCount::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e signYCount _signYCount c
_signZCount::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e signZCount _signZCount c
_signY::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e signY _signY c
_signZ::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e signZ _signZ c
_gyroY::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroY _gyroY L
_gyroZ::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZ _gyroZ L
_temp::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e temp _temp L
_gyroYInt::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroYInt _gyroYInt L
_gyroZInt::
	.blkb 4
	.area idata
	.word 0,0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e gyroZInt _gyroZInt L
_lastButton::
	.blkb 1
	.area idata
	.byte 48
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e lastButton _lastButton c
_buttonCounter::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e buttonCounter _buttonCounter c
_calibrated::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile ./mousealgorithm.c
	.dbsym e calibrated _calibrated c
	.area text(rom, con, rel)
	.dbfile ./mousealgorithm.c
	.dbfunc e updateMouse _updateMouse fV
;         button -> X-15
;    pixelZShift -> X-13
;    pixelYShift -> X-11
;      gyroZData -> X-9
;      gyroYData -> X-7
;       tempData -> X-5
_updateMouse::
	.dbline -1
	push X
	mov X,SP
	.dbline 87
; /**************************************************************************************
; ;* Copyright 2007 InvenSense, Inc. All rights reserved.
; ;* GyroMouse v. 1.1
; ;**************************************************************************************/
; // MouseAlgorithm.cpp : Mouse update function
; //
; 
; #include "driftcompensation.h"
; 
; //Thresholds
; #define DEAD_ZONE 1536
; #define NO_MOTION 3
; #define ENTER_STOP_MODE 50
; #define EXIT_STOP_MODE 10
; #define SPEED_0 28000
; #define SPEED_1 24000
; #define SPEED_2 20000
; #define SPEED_3 16000
; #define SPEED_4 12000
; #define SPEED_5 8000
; 
; //Variables
; 
; //Pointer speed mode variables
; unsigned char mode=0;
; unsigned char lastMode=0;
; 
; //Raw gyro data
; unsigned short gyroYRaw=0;
; unsigned short gyroZRaw=0;
; unsigned short tempRaw =0;
; 
; //Buffered raw gyro data for median filter
; //Used for filtering out button clicks
; unsigned short gyroYRaw1=0;
; unsigned short gyroZRaw1=0;
; unsigned short gyroYRaw2=0;
; unsigned short gyroZRaw2=0;
; unsigned short gyroYRaw3=0;
; unsigned short gyroZRaw3=0;
; 
; //Temporary storage for computing "speed" metric
; signed long gyroTempY = 0;
; signed long gyroTempZ = 0;
; 
; //Bias calculation variables
; signed long gyroZBiasAv = 0;
; signed long gyroYBiasAv = 0;
; signed long tempBiasAv = 0;
; unsigned short gyroZMin=0;
; unsigned short gyroZMax=0;
; unsigned short gyroYMin=0;
; unsigned short gyroYMax=0;
; signed long gyroYBias = 2048;
; signed long gyroZBias = 2048;
; signed long tempBias = 2048;
; unsigned short motionTemp;
; unsigned short biasCounter = 0;
; unsigned char motionDetected = 0;
; 
; //Variables for detecting "STOP" mode
; unsigned char lastSignY = 0;
; unsigned char lastSignZ = 0;
; unsigned char signYCount = 0;
; unsigned char signZCount = 0;
; unsigned char signY = 0;
; unsigned char signZ = 0;
; 
; //Processed gyro data
; signed long gyroY = 0;
; signed long gyroZ = 0;
; signed long temp = 0;
; 
; //Integrated gyro data
; signed long gyroYInt = 0;
; signed long gyroZInt = 0;
; 
; //Button information
; //Used for freezing gyro data temporarily when button is pressed or released
; unsigned char lastButton = 48;
; unsigned char buttonCounter = 0;
; 
; //Initial Calibration
; unsigned char calibrated = 0;
; 
; 
; void updateMouse(unsigned short *tempData, unsigned short *gyroYData, unsigned short *gyroZData, signed short *pixelYShift, signed short *pixelZShift, unsigned char *button){
	.dbline 90
; 
; 	//Compute median filter to filter out button clicks
; 	gyroYRaw3 = gyroYRaw2;
	mov [_gyroYRaw3+1],[_gyroYRaw2+1]
	mov [_gyroYRaw3],[_gyroYRaw2]
	.dbline 91
; 	gyroZRaw3 = gyroZRaw2;
	mov [_gyroZRaw3+1],[_gyroZRaw2+1]
	mov [_gyroZRaw3],[_gyroZRaw2]
	.dbline 93
; 
; 	gyroYRaw2 = gyroYRaw1;
	mov [_gyroYRaw2+1],[_gyroYRaw1+1]
	mov [_gyroYRaw2],[_gyroYRaw1]
	.dbline 94
; 	gyroZRaw2 = gyroZRaw1;
	mov [_gyroZRaw2+1],[_gyroZRaw1+1]
	mov [_gyroZRaw2],[_gyroZRaw1]
	.dbline 96
; 
; 	gyroYRaw = *gyroYData;
	mov A,[X-6]
	mov [__r1],A
	mvi A,[__r1]
	mov [_gyroYRaw],A
	mvi A,[__r1]
	mov [_gyroYRaw+1],A
	.dbline 97
; 	gyroZRaw = *gyroZData;
	mov A,[X-8]
	mov [__r1],A
	mvi A,[__r1]
	mov [_gyroZRaw],A
	mvi A,[__r1]
	mov [_gyroZRaw+1],A
	.dbline 98
; 	tempRaw = *tempData;
	mov A,[X-4]
	mov [__r1],A
	mvi A,[__r1]
	mov [_tempRaw],A
	mvi A,[__r1]
	mov [_tempRaw+1],A
	.dbline 100
; 
; 	gyroYRaw1 = gyroYRaw;
	mov [_gyroYRaw1+1],[_gyroYRaw+1]
	mov [_gyroYRaw1],[_gyroYRaw]
	.dbline 101
; 	gyroZRaw1 = gyroZRaw;
	mov [_gyroZRaw1+1],[_gyroZRaw+1]
	mov [_gyroZRaw1],[_gyroZRaw]
	.dbline 103
; 
; 	if (gyroYRaw3>gyroYRaw2) {
	mov A,[_gyroYRaw2+1]
	sub A,[_gyroYRaw3+1]
	mov A,[_gyroYRaw2]
	sbb A,[_gyroYRaw3]
	jnc L2
X0:
	.dbline 103
	.dbline 104
; 		if (gyroYRaw2>gyroYRaw) {
	mov A,[_gyroYRaw+1]
	sub A,[_gyroYRaw2+1]
	mov A,[_gyroYRaw]
	sbb A,[_gyroYRaw2]
	jnc L4
X1:
	.dbline 104
	.dbline 105
; 			gyroYRaw=gyroYRaw2;
	mov [_gyroYRaw+1],[_gyroYRaw2+1]
	mov [_gyroYRaw],[_gyroYRaw2]
	.dbline 106
	xjmp L3
L4:
	.dbline 106
; 		} else if (gyroYRaw3<gyroYRaw) {
	mov A,[_gyroYRaw3+1]
	sub A,[_gyroYRaw+1]
	mov A,[_gyroYRaw3]
	sbb A,[_gyroYRaw]
	jnc L3
X2:
	.dbline 106
	.dbline 107
; 			gyroYRaw=gyroYRaw3;
	mov [_gyroYRaw+1],[_gyroYRaw3+1]
	mov [_gyroYRaw],[_gyroYRaw3]
	.dbline 108
; 		}
	.dbline 109
	xjmp L3
L2:
	.dbline 109
; 	} else {
	.dbline 110
; 		if (gyroYRaw2<gyroYRaw) {
	mov A,[_gyroYRaw2+1]
	sub A,[_gyroYRaw+1]
	mov A,[_gyroYRaw2]
	sbb A,[_gyroYRaw]
	jnc L8
X3:
	.dbline 110
	.dbline 111
; 			gyroYRaw=gyroYRaw2;
	mov [_gyroYRaw+1],[_gyroYRaw2+1]
	mov [_gyroYRaw],[_gyroYRaw2]
	.dbline 112
	xjmp L9
L8:
	.dbline 112
; 		} else if (gyroYRaw3>gyroYRaw) {
	mov A,[_gyroYRaw+1]
	sub A,[_gyroYRaw3+1]
	mov A,[_gyroYRaw]
	sbb A,[_gyroYRaw3]
	jnc L10
X4:
	.dbline 112
	.dbline 113
; 			gyroYRaw=gyroYRaw3;
	mov [_gyroYRaw+1],[_gyroYRaw3+1]
	mov [_gyroYRaw],[_gyroYRaw3]
	.dbline 114
; 		}
L10:
L9:
	.dbline 115
; 	}
L3:
	.dbline 117
; 
; 	if (gyroZRaw3>gyroZRaw2) {
	mov A,[_gyroZRaw2+1]
	sub A,[_gyroZRaw3+1]
	mov A,[_gyroZRaw2]
	sbb A,[_gyroZRaw3]
	jnc L12
X5:
	.dbline 117
	.dbline 118
; 		if (gyroZRaw2>gyroZRaw) {
	mov A,[_gyroZRaw+1]
	sub A,[_gyroZRaw2+1]
	mov A,[_gyroZRaw]
	sbb A,[_gyroZRaw2]
	jnc L14
X6:
	.dbline 118
	.dbline 119
; 			gyroZRaw=gyroZRaw2;
	mov [_gyroZRaw+1],[_gyroZRaw2+1]
	mov [_gyroZRaw],[_gyroZRaw2]
	.dbline 120
	xjmp L13
L14:
	.dbline 120
; 		} else if (gyroZRaw3<gyroZRaw) {
	mov A,[_gyroZRaw3+1]
	sub A,[_gyroZRaw+1]
	mov A,[_gyroZRaw3]
	sbb A,[_gyroZRaw]
	jnc L13
X7:
	.dbline 120
	.dbline 121
; 			gyroZRaw=gyroZRaw3;
	mov [_gyroZRaw+1],[_gyroZRaw3+1]
	mov [_gyroZRaw],[_gyroZRaw3]
	.dbline 122
; 		}
	.dbline 123
	xjmp L13
L12:
	.dbline 123
; 	} else {
	.dbline 124
; 		if (gyroZRaw2<gyroZRaw) {
	mov A,[_gyroZRaw2+1]
	sub A,[_gyroZRaw+1]
	mov A,[_gyroZRaw2]
	sbb A,[_gyroZRaw]
	jnc L18
X8:
	.dbline 124
	.dbline 125
; 			gyroZRaw=gyroZRaw2;
	mov [_gyroZRaw+1],[_gyroZRaw2+1]
	mov [_gyroZRaw],[_gyroZRaw2]
	.dbline 126
	xjmp L19
L18:
	.dbline 126
; 		} else if (gyroZRaw3>gyroZRaw) {
	mov A,[_gyroZRaw+1]
	sub A,[_gyroZRaw3+1]
	mov A,[_gyroZRaw]
	sbb A,[_gyroZRaw3]
	jnc L20
X9:
	.dbline 126
	.dbline 127
; 			gyroZRaw=gyroZRaw3;
	mov [_gyroZRaw+1],[_gyroZRaw3+1]
	mov [_gyroZRaw],[_gyroZRaw3]
	.dbline 128
; 		}
L20:
L19:
	.dbline 129
; 	}
L13:
	.dbline 132
; 
; 	//Bias Calibration
; 	gyroYBiasAv+=(signed long)gyroYRaw;
	mov [__r3],[_gyroYRaw+1]
	mov [__r2],[_gyroYRaw]
	mov A,[__r3]
	add [_gyroYBiasAv+3],A
	mov A,[__r2]
	adc [_gyroYBiasAv+2],A
	adc [_gyroYBiasAv+1],0
	adc [_gyroYBiasAv],0
	.dbline 133
; 	tempBiasAv+=(signed long)tempRaw;
	mov [__r3],[_tempRaw+1]
	mov [__r2],[_tempRaw]
	mov A,[__r3]
	add [_tempBiasAv+3],A
	mov A,[__r2]
	adc [_tempBiasAv+2],A
	adc [_tempBiasAv+1],0
	adc [_tempBiasAv],0
	.dbline 135
; 
; 	if (gyroYRaw<gyroYMin) {
	mov A,[_gyroYRaw+1]
	sub A,[_gyroYMin+1]
	mov A,[_gyroYRaw]
	sbb A,[_gyroYMin]
	jnc L22
X10:
	.dbline 135
	.dbline 136
; 		gyroYMin = gyroYRaw;
	mov [_gyroYMin+1],[_gyroYRaw+1]
	mov [_gyroYMin],[_gyroYRaw]
	.dbline 137
; 	}
L22:
	.dbline 138
; 	if (gyroYRaw>gyroYMax) {
	mov A,[_gyroYMax+1]
	sub A,[_gyroYRaw+1]
	mov A,[_gyroYMax]
	sbb A,[_gyroYRaw]
	jnc L24
X11:
	.dbline 138
	.dbline 139
; 		gyroYMax = gyroYRaw;
	mov [_gyroYMax+1],[_gyroYRaw+1]
	mov [_gyroYMax],[_gyroYRaw]
	.dbline 140
; 	}
L24:
	.dbline 142
; 
; 	gyroZBiasAv+=(signed long)gyroZRaw;
	mov [__r3],[_gyroZRaw+1]
	mov [__r2],[_gyroZRaw]
	mov A,[__r3]
	add [_gyroZBiasAv+3],A
	mov A,[__r2]
	adc [_gyroZBiasAv+2],A
	adc [_gyroZBiasAv+1],0
	adc [_gyroZBiasAv],0
	.dbline 143
; 	if (gyroZRaw<gyroZMin) {
	mov A,[_gyroZRaw+1]
	sub A,[_gyroZMin+1]
	mov A,[_gyroZRaw]
	sbb A,[_gyroZMin]
	jnc L26
X12:
	.dbline 143
	.dbline 144
; 		gyroZMin = gyroZRaw;
	mov [_gyroZMin+1],[_gyroZRaw+1]
	mov [_gyroZMin],[_gyroZRaw]
	.dbline 145
; 	}
L26:
	.dbline 146
; 	if (gyroZRaw>gyroZMax) {
	mov A,[_gyroZMax+1]
	sub A,[_gyroZRaw+1]
	mov A,[_gyroZMax]
	sbb A,[_gyroZRaw]
	jnc L28
X13:
	.dbline 146
	.dbline 147
; 		gyroZMax = gyroZRaw;
	mov [_gyroZMax+1],[_gyroZRaw+1]
	mov [_gyroZMax],[_gyroZRaw]
	.dbline 148
; 	}
L28:
	.dbline 150
; 
; 	biasCounter+=1;
	inc [_biasCounter+1]
	adc [_biasCounter],0
	.dbline 151
; 	if (biasCounter>511) {
	mov A,-1
	sub A,[_biasCounter+1]
	mov A,1
	sbb A,[_biasCounter]
	jnc L30
X14:
	.dbline 151
	.dbline 152
; 		biasCounter = 0;
	mov [_biasCounter+1],0
	mov [_biasCounter],0
	.dbline 153
; 	}
L30:
	.dbline 154
; 	if (biasCounter==0) {
	cmp [_biasCounter],0
	jnz L32
	cmp [_biasCounter+1],0
	jnz L32
X15:
	.dbline 154
	.dbline 160
; 		
; 		#ifdef DEBUG_INFO
; 		printf("RESETTING BIAS\n");
; 		#endif
; 
; 		mode = 8;
	mov [_mode],8
	.dbline 161
; 		gyroYBias = gyroYBiasAv>>1;
	mov [__r0],[_gyroYBiasAv]
	mov [__r1],[_gyroYBiasAv+1]
	mov [__r2],[_gyroYBiasAv+2]
	mov [__r3],[_gyroYBiasAv+3]
	asr [__r0]
	rrc [__r1]
	rrc [__r2]
	rrc [__r3]
	mov [_gyroYBias],[__r0]
	mov [_gyroYBias+1],[__r1]
	mov [_gyroYBias+2],[__r2]
	mov [_gyroYBias+3],[__r3]
	.dbline 162
; 		gyroZBias = gyroZBiasAv>>1;
	mov [__r0],[_gyroZBiasAv]
	mov [__r1],[_gyroZBiasAv+1]
	mov [__r2],[_gyroZBiasAv+2]
	mov [__r3],[_gyroZBiasAv+3]
	asr [__r0]
	rrc [__r1]
	rrc [__r2]
	rrc [__r3]
	mov [_gyroZBias],[__r0]
	mov [_gyroZBias+1],[__r1]
	mov [_gyroZBias+2],[__r2]
	mov [_gyroZBias+3],[__r3]
	.dbline 163
; 		tempBias = tempBiasAv>>1;
	mov [__r0],[_tempBiasAv]
	mov [__r1],[_tempBiasAv+1]
	mov [__r2],[_tempBiasAv+2]
	mov [__r3],[_tempBiasAv+3]
	asr [__r0]
	rrc [__r1]
	rrc [__r2]
	rrc [__r3]
	mov [_tempBias],[__r0]
	mov [_tempBias+1],[__r1]
	mov [_tempBias+2],[__r2]
	mov [_tempBias+3],[__r3]
	.dbline 164
; 		calibrated = 1;
	mov [_calibrated],1
	.dbline 166
; 
; 		gyroYBiasAv = 0;
	mov [_gyroYBiasAv],0
	mov [_gyroYBiasAv+1],0
	mov [_gyroYBiasAv+2],0
	mov [_gyroYBiasAv+3],0
	.dbline 167
; 		gyroZBiasAv = 0;
	mov [_gyroZBiasAv],0
	mov [_gyroZBiasAv+1],0
	mov [_gyroZBiasAv+2],0
	mov [_gyroZBiasAv+3],0
	.dbline 168
; 		tempBiasAv = 0;
	mov [_tempBiasAv],0
	mov [_tempBiasAv+1],0
	mov [_tempBiasAv+2],0
	mov [_tempBiasAv+3],0
	.dbline 170
; 		
; 		gyroYMin = gyroYRaw;
	mov [_gyroYMin+1],[_gyroYRaw+1]
	mov [_gyroYMin],[_gyroYRaw]
	.dbline 171
; 		gyroYMax = gyroYRaw;
	mov [_gyroYMax+1],[_gyroYRaw+1]
	mov [_gyroYMax],[_gyroYRaw]
	.dbline 172
; 		gyroZMin = gyroZRaw;
	mov [_gyroZMin+1],[_gyroZRaw+1]
	mov [_gyroZMin],[_gyroZRaw]
	.dbline 173
; 		gyroZMax = gyroZRaw;		
	mov [_gyroZMax+1],[_gyroZRaw+1]
	mov [_gyroZMax],[_gyroZRaw]
	.dbline 174
; 		gyroYInt = 0;
	mov [_gyroYInt],0
	mov [_gyroYInt+1],0
	mov [_gyroYInt+2],0
	mov [_gyroYInt+3],0
	.dbline 175
; 		gyroZInt = 0;
	mov [_gyroZInt],0
	mov [_gyroZInt+1],0
	mov [_gyroZInt+2],0
	mov [_gyroZInt+3],0
	.dbline 176
; 	} 
L32:
	.dbline 178
; 	
; 	motionDetected = 0;
	mov [_motionDetected],0
	.dbline 180
; 
; 	motionTemp = gyroYMax-gyroYMin;
	mov A,[_gyroYMax+1]
	sub A,[_gyroYMin+1]
	mov [_motionTemp+1],A
	mov A,[_gyroYMax]
	sbb A,[_gyroYMin]
	mov [_motionTemp],A

⌨️ 快捷键说明

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