📄 motorctrl.lst
字号:
170 .stabn 68,0,116,.LM6-main
171 .LM6:
172 0020 80E0 ldi r24,lo8(pm(uartSendByte))
173 0022 90E0 ldi r25,hi8(pm(uartSendByte))
174 0024 0E94 0000 call rprintfInit
117:motorctrl.c **** // initialize vt100 library
118:motorctrl.c **** vt100Init();
175 .stabn 68,0,118,.LM7-main
176 .LM7:
177 0028 0E94 0000 call vt100Init
119:motorctrl.c ****
120:motorctrl.c **** // clear the terminal screen
121:motorctrl.c **** vt100ClearScreen();
178 .stabn 68,0,121,.LM8-main
179 .LM8:
180 002c 0E94 0000 call vt100ClearScreen
122:motorctrl.c ****
123:motorctrl.c **** // run the encoder test
124:motorctrl.c **** //encoderTest();
125:motorctrl.c ****
126:motorctrl.c **** // run the motor test
127:motorctrl.c **** //motorTest();
128:motorctrl.c ****
129:motorctrl.c **** // command system
130:motorctrl.c **** motorCommand();
181 .stabn 68,0,130,.LM9-main
182 .LM9:
183 0030 0E94 0000 call motorCommand
131:motorctrl.c ****
132:motorctrl.c **** return 0;
133:motorctrl.c **** }
184 .stabn 68,0,133,.LM10-main
185 .LM10:
186 0034 80E0 ldi r24,lo8(0)
187 0036 90E0 ldi r25,hi8(0)
188 /* epilogue: frame size=0 */
189 0038 0C94 0000 jmp exit
190 /* epilogue end (size=2) */
191 /* function main size 30 (24) */
192 .size main, .-main
193 .Lscope0:
194 .stabs "",36,0,0,.Lscope0-main
195 .section .progmem.data,"a",@progbits
196 .type __c.0, @object
197 .size __c.0, 24
198 __c.0:
199 0000 4D6F 746F .string "Motor Controller V1.0\r\n"
199 7220 436F
199 6E74 726F
199 6C6C 6572
199 2056 312E
200 .type __c.1, @object
201 .size __c.1, 5
202 __c.1:
203 0018 4379 633D .string "Cyc="
203 00
204 .type __c.2, @object
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 7
205 .size __c.2, 7
206 __c.2:
207 001d 2020 506F .string " Pos="
207 733D 00
208 .type __c.3, @object
209 .size __c.3, 6
210 __c.3:
211 0024 2020 4570 .string " Ep="
211 3D00
212 .type __c.4, @object
213 .size __c.4, 6
214 __c.4:
215 002a 2020 4569 .string " Ei="
215 3D00
216 .type __c.5, @object
217 .size __c.5, 6
218 __c.5:
219 0030 2020 4564 .string " Ed="
219 3D00
220 .type __c.6, @object
221 .size __c.6, 7
222 __c.6:
223 0036 2020 6F75 .string " out="
223 743D 00
224 .data
225 .LC0:
226 0000 676F 00 .string "go"
227 .LC1:
228 0003 6765 7463 .string "getcoeff"
228 6F65 6666
228 00
229 .LC2:
230 000c 7365 7463 .string "setcoeff"
230 6F65 6666
230 00
231 .LC3:
232 0015 6D6F 6465 .string "mode"
232 00
233 .LC4:
234 001a 7069 6464 .string "piddump"
234 756D 7000
235 .LC5:
236 0022 6865 6C70 .string "help"
236 00
237 .LC6:
238 0027 656E 6374 .string "enctest"
238 6573 7400
239 .LC7:
240 002f 6D6F 746F .string "motortest"
240 7274 6573
240 7400
241 .text
242 .stabs "motorCommand:F(0,20)",36,0,136,motorCommand
243 .global motorCommand
244 .type motorCommand, @function
245 motorCommand:
134:motorctrl.c ****
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 8
135:motorctrl.c **** void motorCommand(void)
136:motorctrl.c **** {
246 .stabn 68,0,136,.LM11-motorCommand
247 .LM11:
248 /* prologue: frame size=1 */
249 003c CF92 push r12
250 003e DF92 push r13
251 0040 EF92 push r14
252 0042 FF92 push r15
253 0044 0F93 push r16
254 0046 1F93 push r17
255 0048 CF93 push r28
256 004a DF93 push r29
257 004c CDB7 in r28,__SP_L__
258 004e DEB7 in r29,__SP_H__
259 0050 2197 sbiw r28,1
260 0052 0FB6 in __tmp_reg__,__SREG__
261 0054 F894 cli
262 0056 DEBF out __SP_H__,r29
263 0058 0FBE out __SREG__,__tmp_reg__
264 005a CDBF out __SP_L__,r28
265 /* prologue end (size=16) */
137:motorctrl.c **** u08 c;
138:motorctrl.c ****
139:motorctrl.c **** // print welcome
140:motorctrl.c **** rprintf("Motor Controller V1.0\r\n");
266 .stabn 68,0,140,.LM12-motorCommand
267 .LM12:
268 .LBB2:
269 005c 80E0 ldi r24,lo8(__c.0)
270 005e 90E0 ldi r25,hi8(__c.0)
271 0060 9F93 push r25
272 0062 8F93 push r24
273 0064 11E0 ldi r17,lo8(1)
274 0066 1F93 push r17
275 0068 0E94 0000 call rprintf1RamRom
141:motorctrl.c ****
142:motorctrl.c **** // initialize cmdline system
143:motorctrl.c **** cmdlineInit();
276 .stabn 68,0,143,.LM13-motorCommand
277 .LM13:
278 006c 0E94 0000 call cmdlineInit
144:motorctrl.c ****
145:motorctrl.c **** // direct cmdline output to uart (serial port)
146:motorctrl.c **** cmdlineSetOutputFunc(uartSendByte);
279 .stabn 68,0,146,.LM14-motorCommand
280 .LM14:
281 0070 80E0 ldi r24,lo8(pm(uartSendByte))
282 0072 90E0 ldi r25,hi8(pm(uartSendByte))
283 0074 0E94 0000 call cmdlineSetOutputFunc
147:motorctrl.c ****
148:motorctrl.c **** // add commands to the command database
149:motorctrl.c **** cmdlineAddCommand("go", motorPosGo);
284 .stabn 68,0,149,.LM15-motorCommand
285 .LM15:
286 0078 60E0 ldi r22,lo8(pm(motorPosGo))
287 007a 70E0 ldi r23,hi8(pm(motorPosGo))
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 9
288 007c 80E0 ldi r24,lo8(.LC0)
289 007e 90E0 ldi r25,hi8(.LC0)
290 0080 0E94 0000 call cmdlineAddCommand
150:motorctrl.c **** cmdlineAddCommand("getcoeff", motorGetCoeffs);
291 .stabn 68,0,150,.LM16-motorCommand
292 .LM16:
293 0084 60E0 ldi r22,lo8(pm(motorGetCoeffs))
294 0086 70E0 ldi r23,hi8(pm(motorGetCoeffs))
295 0088 80E0 ldi r24,lo8(.LC1)
296 008a 90E0 ldi r25,hi8(.LC1)
297 008c 0E94 0000 call cmdlineAddCommand
151:motorctrl.c **** cmdlineAddCommand("setcoeff", motorSetCoeffs);
298 .stabn 68,0,151,.LM17-motorCommand
299 .LM17:
300 0090 60E0 ldi r22,lo8(pm(motorSetCoeffs))
301 0092 70E0 ldi r23,hi8(pm(motorSetCoeffs))
302 0094 80E0 ldi r24,lo8(.LC2)
303 0096 90E0 ldi r25,hi8(.LC2)
304 0098 0E94 0000 call cmdlineAddCommand
152:motorctrl.c **** cmdlineAddCommand("mode", motorSetMode);
305 .stabn 68,0,152,.LM18-motorCommand
306 .LM18:
307 009c 60E0 ldi r22,lo8(pm(motorSetMode))
308 009e 70E0 ldi r23,hi8(pm(motorSetMode))
309 00a0 80E0 ldi r24,lo8(.LC3)
310 00a2 90E0 ldi r25,hi8(.LC3)
311 00a4 0E94 0000 call cmdlineAddCommand
153:motorctrl.c **** cmdlineAddCommand("piddump", motorShowPID);
312 .stabn 68,0,153,.LM19-motorCommand
313 .LM19:
314 00a8 60E0 ldi r22,lo8(pm(motorShowPID))
315 00aa 70E0 ldi r23,hi8(pm(motorShowPID))
316 00ac 80E0 ldi r24,lo8(.LC4)
317 00ae 90E0 ldi r25,hi8(.LC4)
318 00b0 0E94 0000 call cmdlineAddCommand
154:motorctrl.c **** cmdlineAddCommand("help", motorHelp);
319 .stabn 68,0,154,.LM20-motorCommand
320 .LM20:
321 00b4 60E0 ldi r22,lo8(pm(motorHelp))
322 00b6 70E0 ldi r23,hi8(pm(motorHelp))
323 00b8 80E0 ldi r24,lo8(.LC5)
324 00ba 90E0 ldi r25,hi8(.LC5)
325 00bc 0E94 0000 call cmdlineAddCommand
155:motorctrl.c **** cmdlineAddCommand("enctest", encoderTest);
326 .stabn 68,0,155,.LM21-motorCommand
327 .LM21:
328 00c0 60E0 ldi r22,lo8(pm(encoderTest))
329 00c2 70E0 ldi r23,hi8(pm(encoderTest))
330 00c4 80E0 ldi r24,lo8(.LC6)
331 00c6 90E0 ldi r25,hi8(.LC6)
332 00c8 0E94 0000 call cmdlineAddCommand
156:motorctrl.c **** cmdlineAddCommand("motortest", motorTest);
333 .stabn 68,0,156,.LM22-motorCommand
334 .LM22:
335 00cc 60E0 ldi r22,lo8(pm(motorTest))
336 00ce 70E0 ldi r23,hi8(pm(motorTest))
337 00d0 80E0 ldi r24,lo8(.LC7)
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 10
338 00d2 90E0 ldi r25,hi8(.LC7)
339 00d4 0E94 0000 call cmdlineAddCommand
157:motorctrl.c **** // send a CR to cmdline input to stimulate a prompt
158:motorctrl.c **** cmdlineInputFunc('\r');
340 .stabn 68,0,158,.LM23-motorCommand
341 .LM23:
342 00d8 8DE0 ldi r24,lo8(13)
343 00da 0E94 0000 call cmdlineInputFunc
159:motorctrl.c ****
160:motorctrl.c ****
161:motorctrl.c **** // initialize Controller structure
162:motorctrl.c **** // mode
163:motorctrl.c **** Controller.mode = CONTROLMODE_POS;
344 .stabn 68,0,163,.LM24-motorCommand
345 .LM24:
346 00de 1092 0000 sts Controller+52,__zero_reg__
164:motorctrl.c **** // controls coefficients
165:motorctrl.c **** Controller.Kp = 4000;
347 .stabn 68,0,165,.LM25-motorCommand
348 .LM25:
349 00e2 80EA ldi r24,lo8(4000)
350 00e4 9FE0 ldi r25,hi8(4000)
351 00e6 A0E0 ldi r26,hlo8(4000)
352 00e8 B0E0 ldi r27,hhi8(4000)
353 00ea 8093 0000 sts Controller,r24
354 00ee 9093 0000 sts (Controller)+1,r25
355 00f2 A093 0000 sts (Controller)+2,r26
356 00f6 B093 0000 sts (Controller)+3,r27
166:motorctrl.c **** Controller.Ki = 0;
357 .stabn 68,0,166,.LM26-motorCommand
358 .LM26:
359 00fa 1092 0000 sts Controller+4,__zero_reg__
360 00fe 1092 0000 sts (Controller+4)+1,__zero_reg__
361 0102 1092 0000 sts (Controller+4)+2,__zero_reg__
362 0106 1092 0000 sts (Controller+4)+3,__zero_reg__
167:motorctrl.c **** Controller.Kd = 4000;
363 .stabn 68,0,167,.LM27-motorCommand
364 .LM27:
365 010a 8093 0000 sts Controller+8,r24
366 010e 9093 0000 sts (Controller+8)+1,r25
367 0112 A093 0000 sts (Controller+8)+2,r26
368 0116 B093 0000 sts (Controller+8)+3,r27
168:motorctrl.c **** // limits
169:motorctrl.c **** Controller.windupMax = 200<<8;
369 .stabn 68,0,169,.LM28-motorCommand
370 .LM28:
371 011a 80E0 ldi r24,lo8(-14336)
372 011c 98EC ldi r25,hi8(-14336)
373 011e AFEF ldi r26,hlo8(-14336)
374 0120 BFEF ldi r27,hhi8(-14336)
375 0122 8093 0000 sts Controller+28,r24
376 0126 9093 0000 sts (Controller+28)+1,r25
377 012a A093 0000 sts (Controller+28)+2,r26
378 012e B093 0000 sts (Controller+28)+3,r27
170:motorctrl.c **** Controller.outputMax = 700;
379 .stabn 68,0,170,.LM29-motorCommand
380 .LM29:
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 11
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -