?? svm.lst
字號:
C166 COMPILER V6.02, SVM 08/11/2006 11:28:58 PAGE 1
C166 COMPILER V6.02, COMPILATION OF MODULE SVM
OBJECT MODULE PLACED IN SVM.OBJ
COMPILER INVOKED BY: C:\Keil\C166\BIN\C166.EXE SVM.c MODV2 BROWSE MODV2 DEBUG
stmt lvl source
1 #include "MAIN.H"
2 #include "DEF.H"
3 #include "TableQ15.h"
4
5 unsigned int tk,tk1,to;
6
7 const int PulseMin_Div2 = 15;
8
9 //****************************************************************************
10 // @Function void SVM (TComplex *m, char *Sector)
11 //
12 //----------------------------------------------------------------------------
13 // @Description This Function calculate the compare values t0, tk and tk+1
14 // for the SVM. Then this values are written in the Shadow-
15 // Registers of CC6-Unit
16 //
17 // Execution time 4.2us @ 40MHz
18 //
19 //----------------------------------------------------------------------------
20 // @Returnvalue None
21 //
22 //----------------------------------------------------------------------------
23 // @Parameters None
24 //
25 //----------------------------------------------------------------------------
26 // @Date 15.10.2003
27 //
28 //****************************************************************************
29 unsigned int tk_temp,tk1_temp;
30
31 #ifdef _V_F_CONTROL_
32 extern unsigned int V_F_Ratio;
33 #endif
34
35 int Ta,Tb,Tc;
36 extern unsigned int TPWM;
37
38 void CalcTimes(void)
39 {
40 1 int t_temp;
41 1 t_temp = tk+tk1;
42 1 if(t_temp > TPWM)
43 1 {
44 2 tk = tk*TPWM/(t_temp);
45 2 tk1 = tk1*TPWM/(t_temp);
46 2 }
47 1 Tc = (TPWM - tk -tk1) >>1;
48 1 Tb = Tc + tk;
49 1 Ta = Tb + tk1;
50 1 }
51
52 void SVM(TComplex *m, char *Sector)
53 {
54 1
55 1 int x;
C166 COMPILER V6.02, SVM 08/11/2006 11:28:58 PAGE 2
56 1 // determiination of the sector
57 1 x=((long)m->imag*(long)SQRT3INV) >> 15;
*** WARNING C192 IN LINE 57 OF SVM.C: '=': value truncated
58 1 if (m->imag>0)
59 1 { // m.imag>0
60 2 if (m->real>0)
61 2 { // Quadrant 1
62 3 if (x<m->real) {*Sector=0;} else {*Sector=1;}
63 3 }
64 2 else
65 2 { // Quadrant 2
66 3 if (x< (-(m->real))) {*Sector=2;} else {*Sector=1;}
67 3 }
68 2 }
69 1 else
70 1 { // m.imag<0
71 2 if (m->real<0)
72 2 { // Quadrant 3
73 3 if (x<m->real) {*Sector=4;} else {*Sector=3;}
74 3 }
75 2 else
76 2 { // Quadrant 4
77 3 if (x< (-(m->real))) {*Sector=4;} else {*Sector=5;}
78 3 }
79 2 }
80 1 //calculate the time of the adjacent vectors
81 1 tk1 = ((long)CosVectorQ1_15[*Sector]*(long)m->imag - (long)SinVectorQ1_15[*Sector]*(long)m->real) >> 15;
*** WARNING C192 IN LINE 81 OF SVM.C: '=': value truncated
82 1 tk1 = ((long)tk1 * (long)TPWM) >> 15;
*** WARNING C192 IN LINE 82 OF SVM.C: '=': value truncated
83 1
84 1 tk = ((long)SinVectorQ1_15[*Sector+1]*(long)m->real-(long)CosVectorQ1_15[*Sector+1]*(long)m->imag) >> 15;
*** WARNING C192 IN LINE 84 OF SVM.C: '=': value truncated
85 1 tk = ((long)tk * (long)TPWM) >> 15;
*** WARNING C192 IN LINE 85 OF SVM.C: '=': value truncated
86 1
87 1 #ifdef _V_F_CONTROL_
88 1 tk1 = ((long)tk1 * (long)V_F_Ratio) >> 16;
*** WARNING C192 IN LINE 88 OF SVM.C: '=': value truncated
89 1 tk = ((long)tk * (long)V_F_Ratio) >> 16;
*** WARNING C192 IN LINE 89 OF SVM.C: '=': value truncated
90 1 #endif
91 1
92 1 tk_temp = tk;
93 1 tk1_temp = tk1;
94 1
95 1
96 1 switch (*Sector)
97 1 {
98 2
99 2 case 0:
100 2 CCU6_TCTR2 = 0x006A;
101 2 CalcTimes();
102 2 CCU6_CC60SR=Tc;
103 2 CCU6_CC61SR=Tb;
104 2 CCU6_CC62SR=Ta;
105 2 break;
106 2
107 2 case 1:
108 2 CCU6_TCTR2 = 0x0066;
109 2 tk = tk1_temp;
110 2 tk1= tk_temp;
C166 COMPILER V6.02, SVM 08/11/2006 11:28:58 PAGE 3
111 2 CalcTimes();
112 2 CCU6_CC60SR=Tb;
113 2 CCU6_CC61SR=Tc;
114 2 CCU6_CC62SR=Ta;
115 2 break;
116 2
117 2 case 2:
118 2 CCU6_TCTR2 = 0x006E;
119 2 CalcTimes();
120 2 CCU6_CC60SR=Ta;
121 2 CCU6_CC61SR=Tc;
122 2 CCU6_CC62SR=Tb;
123 2 break;
124 2
125 2 case 3:
126 2 CCU6_TCTR2 = 0x006A;
127 2 tk = tk1_temp;
128 2 tk1= tk_temp;
129 2 CalcTimes();
130 2 CCU6_CC60SR=Ta;
131 2 CCU6_CC61SR=Tb;
132 2 CCU6_CC62SR=Tc;
133 2 break;
134 2
135 2 case 4:
136 2 CCU6_TCTR2 = 0x0066;
137 2 CalcTimes();
138 2 CCU6_CC60SR=Tb;
139 2 CCU6_CC61SR=Ta;
140 2 CCU6_CC62SR=Tc;
141 2 break;
142 2
143 2 case 5:
144 2 CCU6_TCTR2 = 0x006E;
145 2 tk = tk1_temp;
146 2 tk1= tk_temp;
147 2 CalcTimes();
148 2 CCU6_CC60SR=Tc;
149 2 CCU6_CC61SR=Ta;
150 2 CCU6_CC62SR=Tb;
151 2 break;
152 2
153 2 }
154 1 CCU6_vEnableShadowTransfer_CCU6_TIMER_12();
155 1 }
156
157
MODULE INFORMATION: INITIALIZED UNINITIALIZED
CODE SIZE = 726 --------
NEAR-CONST SIZE = 2592 --------
FAR-CONST SIZE = -------- --------
HUGE-CONST SIZE = -------- --------
XHUGE-CONST SIZE = -------- --------
NEAR-DATA SIZE = 20 --------
FAR-DATA SIZE = -------- --------
XHUGE-DATA SIZE = -------- --------
IDATA-DATA SIZE = -------- --------
SDATA-DATA SIZE = -------- --------
BDATA-DATA SIZE = -------- --------
HUGE-DATA SIZE = -------- --------
C166 COMPILER V6.02, SVM 08/11/2006 11:28:58 PAGE 4
BIT SIZE = -------- --------
INIT'L SIZE = 12 --------
END OF MODULE INFORMATION.
C166 COMPILATION COMPLETE. 7 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -