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

📄 mousealgorithm.lis

📁 二轴陀螺仪IDG300源程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 04A0 7A00              dec [_signZCount]
 04A2                   .dbline 253
 04A2           ;               }
 04A2                   .dbline 254
 04A2 8004              xjmp L61
 04A4           L60:
 04A4                   .dbline 254
 04A4           ;       } else {
 04A4                   .dbline 255
 04A4           ;         signZCount = 0;
 04A4 550000            mov [_signZCount],0
 04A7                   .dbline 256
 04A7           ;       }
 04A7           L61:
 04A7                   .dbline 257
 04A7           ;     lastSignY = signY;
 04A7 5F0000            mov [_lastSignY],[_signY]
 04AA                   .dbline 258
 04AA           ;     lastSignZ = signZ;
 04AA 5F0000            mov [_lastSignZ],[_signZ]
 04AD                   .dbline 260
 04AD           ; 
 04AD           ;       if (mode!=8) {//Unless mode is "OFF" (on the desk)...
 04AD 3C0008            cmp [_mode],8
 04B0 A1D9              jz L64
 04B2                   .dbline 260
 04B2                   .dbline 261
 04B2           ;               if ((signYCount<ENTER_STOP_MODE) && (signZCount<ENTER_STOP_MODE)) {//If sign changes are happening
 04B2 3C0032            cmp [_signYCount],50
 04B5 D009              jnc L66
 04B7           X29:
 04B7 3C0032            cmp [_signZCount],50
 04BA D004              jnc L66
 04BC           X30:
 04BC                   .dbline 261
 04BC                   .dbline 263
 04BC           ;                       //at a high frequency, enter stop mode
 04BC           ;                       mode = 7;
 04BC 550007            mov [_mode],7
 04BF                   .dbline 264
 04BF           ;               }
 04BF           L66:
 04BF                   .dbline 265
 04BF 5040              mov A,64
 04C1 1203              sub A,[_gyroTempY+3]
 04C3 501F              mov A,31
 04C5 1A02              sbb A,[_gyroTempY+2]
 04C7 5000              mov A,0
 04C9 1A01              sbb A,[_gyroTempY+1]
 04CB 5100              mov A,[_gyroTempY]
 04CD 3180              xor A,-128
 04CF 5300              mov [__rX],A
 04D1 5080              mov A,(0 ^ 0x80)
 04D3 1A00              sbb A,[__rX]
 04D5 C019              jc L70
 04D7           X31:
 04D7 5040              mov A,64
 04D9 1203              sub A,[_gyroTempZ+3]
 04DB 501F              mov A,31
 04DD 1A02              sbb A,[_gyroTempZ+2]
 04DF 5000              mov A,0
 04E1 1A01              sbb A,[_gyroTempZ+1]
 04E3 5100              mov A,[_gyroTempZ]
 04E5 3180              xor A,-128
 04E7 5300              mov [__rX],A
 04E9 5080              mov A,(0 ^ 0x80)
 04EB 1A00              sbb A,[__rX]
 04ED D00E              jnc L68
 04EF           X32:
 04EF           L70:
 04EF                   .dbline 265
 04EF           ;               if ((gyroTempY>SPEED_5) || (gyroTempZ>SPEED_5)) {// Test for "MEDIUM" mode
 04EF                   .dbline 266
 04EF           ;                       if (lastMode==7) {//Not allowed if coming straight from "stop mode"
 04EF 3C0007            cmp [_lastMode],7
 04F2 B006              jnz L71
 04F4                   .dbline 266
 04F4                   .dbline 267
 04F4           ;                               mode=6;
 04F4 550006            mov [_mode],6
 04F7                   .dbline 268
 04F7 8004              xjmp L72
 04F9           L71:
 04F9                   .dbline 268
 04F9           ;                       } else {
 04F9                   .dbline 269
 04F9           ;                               mode=5;
 04F9 550005            mov [_mode],5
 04FC                   .dbline 270
 04FC           ;                       }
 04FC           L72:
 04FC                   .dbline 271
 04FC           ;               }
 04FC           L68:
 04FC                   .dbline 272
 04FC 500A              mov A,10
 04FE 3A00              cmp A,[_signYCount]
 0500 C007              jc L75
 0502           X33:
 0502 500A              mov A,10
 0504 3A00              cmp A,[_signZCount]
 0506 D180              jnc L73
 0508           X34:
 0508           L75:
 0508                   .dbline 272
 0508           ;               if ((signYCount>EXIT_STOP_MODE) || (signZCount>EXIT_STOP_MODE)) {// || (lastMode!=7)) {
 0508                   .dbline 273
 0508           ;                       gyroTempY = gyroY;
 0508 5F0000            mov [_gyroTempY],[_gyroY]
 050B 5F0101            mov [_gyroTempY+1],[_gyroY+1]
 050E 5F0202            mov [_gyroTempY+2],[_gyroY+2]
 0511 5F0303            mov [_gyroTempY+3],[_gyroY+3]
 0514                   .dbline 274
 0514           ;                       gyroTempZ = gyroZ;
 0514 5F0000            mov [_gyroTempZ],[_gyroZ]
 0517 5F0101            mov [_gyroTempZ+1],[_gyroZ+1]
 051A 5F0202            mov [_gyroTempZ+2],[_gyroZ+2]
 051D 5F0303            mov [_gyroTempZ+3],[_gyroZ+3]
 0520                   .dbline 275
 0520           ;                       if (gyroTempY<0) {gyroTempY=-gyroTempY;}
 0520 5103              mov A,[_gyroTempY+3]
 0522 1100              sub A,0
 0524 5102              mov A,[_gyroTempY+2]
 0526 1900              sbb A,0
 0528 5101              mov A,[_gyroTempY+1]
 052A 1900              sbb A,0
 052C 5100              mov A,[_gyroTempY]
 052E 3180              xor A,-128
 0530 1980              sbb A,(0 ^ 0x80)
 0532 D01D              jnc L76
 0534           X35:
 0534                   .dbline 275
 0534                   .dbline 275
 0534 5103              mov A,[_gyroTempY+3]
 0536 73                cpl A
 0537 11FF              sub A,-1
 0539 5303              mov [_gyroTempY+3],A
 053B 5102              mov A,[_gyroTempY+2]
 053D 73                cpl A
 053E 19FF              sbb A,-1
 0540 5302              mov [_gyroTempY+2],A
 0542 5101              mov A,[_gyroTempY+1]
 0544 73                cpl A
 0545 19FF              sbb A,-1
 0547 5301              mov [_gyroTempY+1],A
 0549 5100              mov A,[_gyroTempY]
 054B 73                cpl A
 054C 19FF              sbb A,-1
 054E 5300              mov [_gyroTempY],A
 0550                   .dbline 275
 0550           L76:
 0550                   .dbline 276
 0550           ;                       if (gyroTempZ<0) {gyroTempZ=-gyroTempZ;}
 0550 5103              mov A,[_gyroTempZ+3]
 0552 1100              sub A,0
 0554 5102              mov A,[_gyroTempZ+2]
 0556 1900              sbb A,0
 0558 5101              mov A,[_gyroTempZ+1]
 055A 1900              sbb A,0
 055C 5100              mov A,[_gyroTempZ]
 055E 3180              xor A,-128
 0560 1980              sbb A,(0 ^ 0x80)
 0562 D01D              jnc L78
 0564           X36:
 0564                   .dbline 276
 0564                   .dbline 276
 0564 5103              mov A,[_gyroTempZ+3]
 0566 73                cpl A
 0567 11FF              sub A,-1
 0569 5303              mov [_gyroTempZ+3],A
 056B 5102              mov A,[_gyroTempZ+2]
 056D 73                cpl A
 056E 19FF              sbb A,-1
 0570 5302              mov [_gyroTempZ+2],A
 0572 5101              mov A,[_gyroTempZ+1]
 0574 73                cpl A
 0575 19FF              sbb A,-1
 0577 5301              mov [_gyroTempZ+1],A
 0579 5100              mov A,[_gyroTempZ]
 057B 73                cpl A
 057C 19FF              sbb A,-1
 057E 5300              mov [_gyroTempZ],A
 0580                   .dbline 276
 0580           L78:
 0580                   .dbline 277
 0580 5060              mov A,96
 0582 1203              sub A,[_gyroTempY+3]
 0584 506D              mov A,109
 0586 1A02              sbb A,[_gyroTempY+2]
 0588 5000              mov A,0
 058A 1A01              sbb A,[_gyroTempY+1]
 058C 5100              mov A,[_gyroTempY]
 058E 3180              xor A,-128
 0590 5300              mov [__rX],A
 0592 5080              mov A,(0 ^ 0x80)
 0594 1A00              sbb A,[__rX]
 0596 C019              jc L82
 0598           X37:
 0598 5060              mov A,96
 059A 1203              sub A,[_gyroTempZ+3]
 059C 506D              mov A,109
 059E 1A02              sbb A,[_gyroTempZ+2]
 05A0 5000              mov A,0
 05A2 1A01              sbb A,[_gyroTempZ+1]
 05A4 5100              mov A,[_gyroTempZ]
 05A6 3180              xor A,-128
 05A8 5300              mov [__rX],A
 05AA 5080              mov A,(0 ^ 0x80)
 05AC 1A00              sbb A,[__rX]
 05AE D006              jnc L80
 05B0           X38:
 05B0           L82:
 05B0                   .dbline 277
 05B0           ;                       if ((gyroTempY>SPEED_0) || (gyroTempZ>SPEED_0)) {
 05B0                   .dbline 278
 05B0           ;                               mode=0;
 05B0 550000            mov [_mode],0
 05B3                   .dbline 279
 05B3 80D3              xjmp L81
 05B5           L80:
 05B5                   .dbline 279
 05B5 50C0              mov A,-64
 05B7 1203              sub A,[_gyroTempY+3]
 05B9 505D              mov A,93
 05BB 1A02              sbb A,[_gyroTempY+2]
 05BD 5000              mov A,0
 05BF 1A01              sbb A,[_gyroTempY+1]
 05C1 5100              mov A,[_gyroTempY]
 05C3 3180              xor A,-128
 05C5 5300              mov [__rX],A
 05C7 5080              mov A,(0 ^ 0x80)
 05C9 1A00              sbb A,[__rX]
 05CB C019              jc L85
 05CD           X39:
 05CD 50C0              mov A,-64
 05CF 1203              sub A,[_gyroTempZ+3]
 05D1 505D              mov A,93
 05D3 1A02              sbb A,[_gyroTempZ+2]
 05D5 5000              mov A,0
 05D7 1A01              sbb A,[_gyroTempZ+1]
 05D9 5100              mov A,[_gyroTempZ]
 05DB 3180              xor A,-128
 05DD 5300              mov [__rX],A
 05DF 5080              mov A,(0 ^ 0x80)
 05E1 1A00              sbb A,[__rX]
 05E3 D006              jnc L83
 05E5           X40:
 05E5           L85:
 05E5                   .dbline 279
 05E5           ;                       } else if ((gyroTempY>SPEED_1) || (gyroTempZ>SPEED_1)) {
 05E5                   .dbline 280
 05E5           ;                               mode=1;
 05E5 550001            mov [_mode],1
 05E8                   .dbline 281
 05E8 809E              xjmp L84
 05EA           L83:
 05EA                   .dbline 281
 05EA 5020              mov A,32
 05EC 1203              sub A,[_gyroTempY+3]
 05EE 504E              mov A,78
 05F0 1A02              sbb A,[_gyroTempY+2]
 05F2 5000              mov A,0
 05F4 1A01              sbb A,[_gyroTempY+1]
 05F6 5100              mov A,[_gyroTempY]
 05F8 3180              xor A,-128
 05FA 5300              mov [__rX],A
 05FC 5080              mov A,(0 ^ 0x80)
 05FE 1A00              sbb A,[__rX]
 0600 C019              jc L88
 0602           X41:
 0602 5020              mov A,32
 0604 1203              sub A,[_gyroTempZ+3]
 0606 504E              mov A,78
 0608 1A02              sbb A,[_gyroTempZ+2]
 060A 5000              mov A,0
 060C 1A01              sbb A,[_gyroTempZ+1]
 060E 5100              mov A,[_gyroTempZ]
 0610 3180              xor A,-128
 0612 5300              mov [__rX],A
 0614 5080              mov A,(0 ^ 0x80)
 0616 1A00              sbb A,[__rX]
 0618 D006              jnc L86
 061A           X42:
 061A           L88:
 061A                   .dbline 281
 061A           ;                       } else if ((gyroTempY>SPEED_2) || (gyroTempZ>SPEED_2)) {
 061A                   .dbline 282
 061A           ;                               mode=2;
 061A 550002            mov [_mode],2
 061D                   .dbline 283
 061D 8069              xjmp L87
 061F           L86:
 061F                   .dbline 283
 061F 5080              mov A,-128
 0621 1203              sub A,[_gyroTempY+3]
 0623 503E              mov A,62
 0625 1A02              sbb A,[_gyroTempY+2]
 0627 5000              mov A,0
 0629 1A01              sbb A,[_gyroTempY+1]
 062B 5100              mov A,[_gyroTempY]
 062D 3180              xor A,-128
 062F 5300              mov [__rX],A
 0631 5080              mov A,(0 ^ 0x80)
 0633 1A00              sbb A,[__rX]
 0635 C019              jc L91
 0637           X43:
 0637 5080              mov A,-128
 0639 1203              sub A,[_gyroTempZ+3]
 063B 503E              mov A,62
 063D 1A02              sbb A,[_gyroTempZ+2]
 063F 5000              mov A,0
 0641 1A01              sbb A,[_gyroTempZ+1]
 0643 5100              mov A,[_gyroTempZ]
 0645 3180              xor A,-128
 0647 5300              mov [__rX],A
 0649 5080              mov A,(0 ^ 0x80)
 064B 1A0

⌨️ 快捷键说明

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