📄 i_get.lst
字号:
C:\tic2xx\c2000\cgtools\bin\dspa.exe i_GET.asm i_GET.obj -gls -v2xx
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:50 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
i_GET.asm PAGE 1
1 ;=====================================================================
2 ; File name : i_GET.asm
3 ; Module Name : i_GET
4 ; Initialization Routine: i_GET_INIT
5 ; Description : 从电流传感器采样并转换成两相静止坐标系(alfa,beta)下的值。
6 ; 并且读出速度给定值(转换成7FFFH/mS格式)
7 ;=====================================================================
8 .include "f2407.h"
9
10 .global i_GET,i_GET_INIT ;function call
11 .global PROTECT
12
13 .global IA0,IB0,IA1,IB1,IA2,IB2 ;output(Q12)
14 .global Omiga_ref ;output
15 .global TEMP,TEMP1
16
17 ;=====================================================================
18 0000 i_GET_INIT:
19 ;=====================================================================
20 0000 bce1 LDP #DP_PF2
21 0001 ae20 SPLK #4000H,ADCTRL1 ;RESET ADC
0002 4000
22 0003 ae22 SPLK #02H,MAX_CONV ;02H表示有3个转换!!!!
0004 0002
23 0005 ae23 SPLK #210H,CHSELSEQ1 ;次序对转换结果很有影响,021或012次序时2通道读数误差较大
0006 0210
24 0007 ae20 SPLK #0010100100000000B,ADCTRL1 ;仿真悬挂时ADC完成转换后停止,启停模式。
0008 2900
25 0009 ae21 SPLK #0100H,ADCTRL2
000a 0100
26 000b ef00 RET
27 ;=====================================================================
28 000c i_GET:
29 ;=====================================================================
30 000c bf00 SPM 0
31 000d be46 CLRC SXM ;ADRESULT左移时不产生符号扩展
32 ;-----------------------------------------------------------
33 ; IA0 = ( AD_RESULT - 1FFH (实际测量时调整) ) * 44H
34 000e be46 CLRC SXM
35 000f bce1 LDP #DP_PF2
36 0010 1a2a LACC RESULT2,10 ;读通道2的值iA,这里结果左对齐。所以要左移10位移到ACC高16位。
37
38 0011 be47 SETC SXM
39 0012 bc04 LDP #DP_DATA ;用户定义的数据页
40 ; SACH IA0
41 0013 9800! SACH TEMP
42 0014 6900! LACL TEMP
43 0015 bfa0 SUB #1ACH ;按传感器在0输出时调整。
0016 01ac
44 ; SACL IA0
45 0017 9000! SACL TEMP
46 0018 7300! LT TEMP
47 0019 c044 MPY #44H
48 001a 8c00! SPL IA0 ;存入IA0,注意当RESULT1=400H时会溢出,结果为8000H。所以应该避免,
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Wed Jun 8 17:23:50 2005
Copyright (c) 1987-1999 Texas Instruments Incorporated
i_GET.asm PAGE 2
49 ;-----------------------------------------------------------
50 001b be46 CLRC SXM
51 001c bce1 LDP #DP_PF2
52 001d 1a29 LACC RESULT1,10 ;读通道1的值iB
53
54 001e be47 SETC SXM
55 001f bc04 LDP #DP_DATA
56 ; SACH IB0
57 0020 9800! SACH TEMP
58 0021 6900! LACL TEMP
59 0022 bfa0 SUB #1ECH ;按传感器在0输出时调整。
0023 01ec
60 ; SACL IB0
61 0024 9000! SACL TEMP
62 0025 7300! LT TEMP
63 0026 c044 MPY #44H ;稍微修正了一下。
64 0027 8c00! SPL IB0 ;存入IB0
65 ;-----------------------------------------------------------
66 ; Omiga_in = AD_RESULT * 4 / 5 =AD_RESULT * 4 * 0.2
67 0028 be46 GET_Omiga: CLRC SXM
68 0029 bce1 LDP #DP_PF2
69 002a 1c28 LACC RESULT0,12 ;读通道0的值Omiga_in*4
70 002b bc04 LDP #DP_DATA
71 002c 9800! SACH TEMP
72 002d 7300! LT TEMP
73 002e ae00! SPLK #6346,TEMP1 ;0.2(Q15)
002f 18ca
74 0030 5400! MPY TEMP1
75 0031 bf01 SPM 1
76 0032 8d00! SPH Omiga_ref ;存入Omiga_ref
77
78 ; SPLK #300,Omiga_ref
79
80 0033 1000! LACC Omiga_ref
81 0034 ba1e SUB #30
82 0035 e304 BCND ENDGET,GT
0036 0039'
83 0037 7a80 CALL PROTECT
0038 0000!
84 ;-----------------------------------------------------------
85 0039 ENDGET:
86 0039 bce1 LDP #DP_PF2
87 003a 6921 LACL ADCTRL2
88 003b 9021 SACL ADCTRL2 ;清中断标志位
89 003c bf00 SPM 0
90 003d be47 SETC SXM
91 003e ef00 RET
92
93
94
No Errors, No Warnings
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -