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

📄 encoder.lst

📁 Texas-Instrument C2000 Series DSP example programs
💻 LST
📖 第 1 页 / 共 3 页
字号:
     485 00e5 9080          SACL    * 
     486            *** 249 -----------------------    goto g8;
     487 00e6 7980          B       L14
         00e7 00f7' 
     488 00e8       L12:
     489            ***     -----------------------g6:
     490            *** 244 -----------------------    if ( (incr&3u) != 3u ) goto g8;
     491                    .line   33
     492 00e8 b903          LACK    3
     493 00e9 8b90          MAR     *-
     494 00ea 6e80          AND     * 
     495 00eb ba03          SUBK    3
     496 00ec e308          BNZ     L14
         00ed 00f7' 
     497            *** 245 -----------------------    incr = incr+1u&qep_rollover-1u;
     498                    .line   34
     499 00ee bc00!         LDPK    _qep_rollover
     500 00ef 1000!         LAC     _qep_rollover
     501 00f0 ba01          SUBK    1
     502 00f1 8b89          MAR     * ,AR1
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63  Mon Feb  9 04:52:54 1998
Copyright (c) 1987-1996  Texas Instruments Incorporated 
encoder.asm                                                          PAGE   11

     503 00f2 908a          SACL    * ,AR2
     504 00f3 1089          LAC     * ,AR1
     505 00f4 b801          ADDK    1
     506 00f5 6e8a          AND     * ,AR2
     507 00f6 9080          SACL    * 
     508 00f7       L14:
     509            ***     -----------------------g8:
     510            *** 254 -----------------------    encoder_position[1] = incr>>2;
     511                    .line   43
     512            ;>>>>       encoder_position[1] = (incr >> 2);
     513 00f7 b203          LARK    AR2,3
     514 00f8 8be0          MAR     *0+
     515 00f9 1d80          LAC     * ,13
     516 00fa bc00-         LDPK    _encoder_position+1
     517 00fb 9901-         SACH    _encoder_position+1,1
     518            ***     -----------------------    return;
     519 00fc       EPI0_4:
     520                    .line   44
     521 00fc 8b89          MAR     * ,AR1
     522 00fd 7c06          SBRK    6
     523 00fe 0090          LAR     AR0,*-
     524 00ff 7680          PSHD    *
     525 0100 ef00          RET
     526            
     527                    .endfunc        255,000000000H,5
     528            
     529                    .sym    _Encoder_CalcPhase,_Encoder_CalcPhase,36,2,0
     530                    .globl  _Encoder_CalcPhase
     531            
     532                    .func   268
     533            ;>>>>   int  Encoder_CalcPhase(int qep_sin, int qep_negcos)  
     534            ******************************************************
     535            * FUNCTION DEF : _Encoder_CalcPhase
     536            ******************************************************
     537 0101       _Encoder_CalcPhase:
     538            
     539      0000  LF5     .set    0
     540            
     541 0101 8aa0          POPD    *+
     542 0102 80a0          SAR     AR0,*+
     543 0103 8180          SAR     AR1,*
     544 0104 b003          LARK    AR0,3
     545 0105 00ea          LAR     AR0,*0+,AR2
     546            
     547                    .sym    _qep_sin,-3+LF5,4,9,16
     548                    .sym    _qep_negcos,-4+LF5,4,9,16
     549            *
     550            *  ---  buffer shares AUTO storage with phase
     551            *  ---  buffer shares AUTO storage with U$2
     552            *
     553                    .sym    U$3,1,4,1,16
     554                    .sym    _buffer,2,4,1,16
     555                    .line   2
     556            ;>>>>       int  phase;
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63  Mon Feb  9 04:52:54 1998
Copyright (c) 1987-1996  Texas Instruments Incorporated 
encoder.asm                                                          PAGE   12

     557            ;>>>>       int  buffer;
     558            *** 276 -----------------------    U$3 = ABS(qep_negcos);
     559                    .line   9
     560            ;>>>>      if (abs(qep_sin) == abs(qep_negcos))
     561            ;>>>>         phase = (PI/4);               
     562 0106 be47          SSXM
     563 0107 bf0a          LARK    AR2,-4+LF5
         0108 fffc  
     564 0109 8be0          MAR     *0+
     565 010a 1080          LAC     * 
     566 010b be00          ABS
     567 010c 7805          ADRK    5-LF5
     568 010d 9080          SACL    * 
     569            *** 276 -----------------------    U$2 = ABS(qep_sin);
     570 010e 7c04          SBRK    4-LF5
     571 010f 1080          LAC     * 
     572 0110 be00          ABS
     573 0111 7805          ADRK    5-LF5
     574 0112 9080          SACL    * 
     575            *** 276 -----------------------    if ( U$2 == U$3 ) goto g4;
     576 0113 1090          LAC     *-
     577 0114 3080          SUB     * 
     578 0115 e388          BZ      L18
         0116 0148' 
     579            *** 278 -----------------------    if ( U$2 < U$3 ) goto g3;
     580                    .line   11
     581            ;>>>>      else if (abs(qep_sin) < abs(qep_negcos))
     582            ;>>>>         buffer = q15_div(abs(qep_sin),abs(qep_negcos)); 
     583            ;>>>>         phase  = q15p_atan(buffer);   
     584            ;>>>>      else
     585 0117 8ba0          MAR     *+
     586 0118 1090          LAC     *-
     587 0119 3080          SUB     * 
     588 011a e344          BLZ     L17
         011b 0134' 
     589            *** 286 -----------------------    buffer = q15_div((unsigned)U$3, (unsigned)U$2);
     590                    .line   19
     591            ;>>>>         buffer = q15_div(abs(qep_negcos),abs(qep_sin)); 
     592 011c 8ba0          MAR     *+
     593 011d 1099          LAC     *-,AR1
     594 011e 90aa          SACL    *+,AR2
     595 011f 1089          LAC     * ,AR1
     596 0120 90a0          SACL    *+
     597 0121 7a80          CALL    _q15_div
         0122 0000! 
     598 0123 7c02          SBRK    2
     599 0124 8b8a          MAR     * ,AR2
     600 0125 b202          LARK    AR2,2
     601 0126 8be0          MAR     *0+
     602 0127 9089          SACL    * ,AR1
     603            *** 288 -----------------------    phase = 16384L-(long)q15p_atan((unsigned)buffer);
     604                    .line   21
     605            ;>>>>         phase  = (PI/2) - q15p_atan(buffer);   
     606 0128 90a0          SACL    *+
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63  Mon Feb  9 04:52:54 1998
Copyright (c) 1987-1996  Texas Instruments Incorporated 
encoder.asm                                                          PAGE   13

     607 0129 7a80          CALL    _q15p_atan
         012a 0000! 
     608 012b 8b9a          MAR     *-,AR2
     609 012c be02          NEG
     610 012d bf90          ADDK    16384
         012e 4000  
     611 012f b202          LARK    AR2,2
     612 0130 8be0          MAR     *0+
     613 0131 9080          SACL    * 
     614            *** 288 -----------------------    goto g5;
     615 0132 7980          B       L19
         0133 014b' 
     616 0134       L17:
     617            ***     -----------------------g3:
     618            *** 280 -----------------------    buffer = q15_div((unsigned)U$2, (unsigned)U$3);
     619                    .line   13
     620 0134 10a9          LAC     *+,AR1
     621 0135 90aa          SACL    *+,AR2
     622 0136 1089          LAC     * ,AR1
     623 0137 90a0          SACL    *+
     624 0138 7a80          CALL    _q15_div
         0139 0000! 
     625 013a 7c02          SBRK    2
     626 013b 8b8a          MAR     * ,AR2
     627 013c b202          LARK    AR2,2
     628 013d 8be0          MAR     *0+
     629 013e 9089          SACL    * ,AR1
     630            *** 282 -----------------------    phase = q15p_atan((unsigned)buffer);
     631                    .line   15
     632 013f 90a0          SACL    *+
     633 0140 7a80          CALL    _q15p_atan
         0141 0000! 
     634 0142 8b9a          MAR     *-,AR2
     635 0143 b202          LARK    AR2,2
     636 0144 8be0          MAR     *0+
     637 0145 9080          SACL    * 
     638            ***     -----------------------    goto g5;
     639 0146 7980          B       L19
         0147 014b' 
     640 0148       L18:
     641            ***     -----------------------g4:
     642            *** 277 -----------------------    phase = 8192;
     643                    .line   10
     644 0148 8ba0          MAR     *+
     645 0149 ae80          SPLK    #8192,* 
         014a 2000  
     646 014b       L19:
     647            ***     -----------------------g5:
     648            *** 294 -----------------------    if ( qep_sin >= 0 ) goto g9;
     649                    .line   27
     650            ;>>>>      if (qep_sin >= 0)   
     651            ;>>>>         if (qep_negcos > 0)
     652            ;>>>>            phase = PI - phase;    /* 2nd quadrant */ 
     653            ;>>>>      else 
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63  Mon Feb  9 04:52:54 1998
Copyright (c) 1987-1996  Texas Instruments Incorporated 
encoder.asm                                                          PAGE   14

     654 014b be47          SSXM
     655 014c 7c05          SBRK    5-LF5
     656 014d 1080          LAC     * 
     657 014e e38c          BGEZ    L23
         014f 0163' 
     658            *** 302 -----------------------    if ( qep_negcos <= 0 ) goto g8;
     659                    .line   35
     660            ;>>>>         if ( qep_negcos > 0 )
     661 0150 8b90          MAR     *-
     662 0151 1080          LAC     * 
     663 0152 e3cc          BLEZ    L22
         0153 015c' 
     664            *** 303 -----------------------    phase = (long)phase-32768L;
     665                    .line   36
     666            ;>>>>            phase = PI + phase;    /* 3rd quadrant */ 
     667            ;>>>>         else
     668 0154 7806          ADRK    6-LF5
     669 0155 1080          LAC     * 
     670 0156 bf9f          ADLK    65535,15
         0157 ffff  
     671 0158 9080          SACL    * 
     672            ***     -----------------------    return phase;
     673 0159 1080          LAC     * 
     674 015a 7980          B       EPI0_5
         015b 016f' 
     675 015c       L22:
     676            ***     -----------------------g8:
     677            *** 305 -----------------------    phase = -phase;
     678                    .line   38
     679            ;>>>>            phase = -phase;        /* 4th quadrant */ 
     680 015c 7806          ADRK    6-LF5
     681 015d 1080          LAC     * 
     682 015e be02          NEG
     683 015f 9080          SACL    * 
     684            *** 305 -----------------------    return phase;
     685 0160 1080          LAC     * 
     686 0161 7980          B       EPI0_5
         0162 016f' 
     687 0163       L23:
     688            ***     -----------------------g9:
     689            *** 296 -----------------------    if ( qep_negcos <= 0 ) goto g11;
     690                    .line   29
     691 0163 8b90          MAR     *-
     692 0164 1080          LAC     * 
     693 0165 e3cc          BLEZ    L25
         0166 016c' 
     694            *** 297 -----------------------    phase = 32768L-(long)phase;
     695                    .line   30
     696 0167 bf8f          LALK    1,15
         0168 0001  
     697 0169 7806          ADRK    6-LF5
     698 016a 3080          SUB     * 
     699 016b 9080          SACL    * 
     700 016c       L25:
TMS320C1x/C2x/C2xx/C5x COFF Assembler Beta Version 6.63  Mon Feb  9 04:52:54 1998
Copyright (c) 1987-1996  Texas Instruments Incorporated 
encoder.asm                                                          PAGE   15

     701            ***     -----------------------g11:
     702            *** 308 -----------------------    return phase;
     703                    .line   41
     704            ;>>>>      return  phase; 
     705 016c b202          LARK    AR2,2
     706 016d 8be0          MAR     *0+
     707 016e 1080          LAC     * 
     708 016f       EPI0_5:
     709                    .line   42
     710 016f 8b89          MAR     * ,AR1
     711 0170 7c04          SBRK    4
     712 0171 0090          LAR     AR0,*-
     713 0172 7680          PSHD    *
     714 0173 ef00          RET
     715            
     716                    .endfunc        309,000000000H,3
     717            
     718                    .sym    _encoder_position,_encoder_position,62,2,32,,2
     719                    .globl  _encoder_position
     720                    .end

 No Errors,  No Warnings

⌨️ 快捷键说明

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