📄 motorctrl.lst
字号:
381 0132 8CEB ldi r24,lo8(700)
382 0134 92E0 ldi r25,hi8(700)
383 0136 A0E0 ldi r26,hlo8(700)
384 0138 B0E0 ldi r27,hhi8(700)
385 013a 8093 0000 sts Controller+32,r24
386 013e 9093 0000 sts (Controller+32)+1,r25
387 0142 A093 0000 sts (Controller+32)+2,r26
388 0146 B093 0000 sts (Controller+32)+3,r27
171:motorctrl.c **** // state variables
172:motorctrl.c **** Controller.error = 0;
389 .stabn 68,0,172,.LM30-motorCommand
390 .LM30:
391 014a 1092 0000 sts Controller+12,__zero_reg__
392 014e 1092 0000 sts (Controller+12)+1,__zero_reg__
393 0152 1092 0000 sts (Controller+12)+2,__zero_reg__
394 0156 1092 0000 sts (Controller+12)+3,__zero_reg__
173:motorctrl.c **** Controller.error_last = 0;
395 .stabn 68,0,173,.LM31-motorCommand
396 .LM31:
397 015a 1092 0000 sts Controller+16,__zero_reg__
398 015e 1092 0000 sts (Controller+16)+1,__zero_reg__
399 0162 1092 0000 sts (Controller+16)+2,__zero_reg__
400 0166 1092 0000 sts (Controller+16)+3,__zero_reg__
174:motorctrl.c **** Controller.error_integ = 0;
401 .stabn 68,0,174,.LM32-motorCommand
402 .LM32:
403 016a 1092 0000 sts Controller+20,__zero_reg__
404 016e 1092 0000 sts (Controller+20)+1,__zero_reg__
405 0172 1092 0000 sts (Controller+20)+2,__zero_reg__
406 0176 1092 0000 sts (Controller+20)+3,__zero_reg__
175:motorctrl.c **** Controller.error_diff = 0;
407 .stabn 68,0,175,.LM33-motorCommand
408 .LM33:
409 017a 1092 0000 sts Controller+24,__zero_reg__
410 017e 1092 0000 sts (Controller+24)+1,__zero_reg__
411 0182 1092 0000 sts (Controller+24)+2,__zero_reg__
412 0186 1092 0000 sts (Controller+24)+3,__zero_reg__
176:motorctrl.c **** // input and output
177:motorctrl.c **** Controller.output = 0;
413 .stabn 68,0,177,.LM34-motorCommand
414 .LM34:
415 018a 1092 0000 sts Controller+36,__zero_reg__
416 018e 1092 0000 sts (Controller+36)+1,__zero_reg__
417 0192 1092 0000 sts (Controller+36)+2,__zero_reg__
418 0196 1092 0000 sts (Controller+36)+3,__zero_reg__
178:motorctrl.c **** Controller.input = 0;
419 .stabn 68,0,178,.LM35-motorCommand
420 .LM35:
421 019a 1092 0000 sts Controller+40,__zero_reg__
422 019e 1092 0000 sts (Controller+40)+1,__zero_reg__
423 01a2 1092 0000 sts (Controller+40)+2,__zero_reg__
424 01a6 1092 0000 sts (Controller+40)+3,__zero_reg__
179:motorctrl.c **** Controller.feedback = 0;
425 .stabn 68,0,179,.LM36-motorCommand
426 .LM36:
427 01aa 1092 0000 sts Controller+44,__zero_reg__
428 01ae 1092 0000 sts (Controller+44)+1,__zero_reg__
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 12
429 01b2 1092 0000 sts (Controller+44)+2,__zero_reg__
430 01b6 1092 0000 sts (Controller+44)+3,__zero_reg__
180:motorctrl.c ****
181:motorctrl.c **** // initialize motor control lines
182:motorctrl.c **** motorInit();
431 .stabn 68,0,182,.LM37-motorCommand
432 .LM37:
433 01ba 0E94 0000 call motorInit
183:motorctrl.c ****
184:motorctrl.c **** // set up LEDs
185:motorctrl.c **** outb(DDRB, 0xFF);
434 .stabn 68,0,185,.LM38-motorCommand
435 .LM38:
436 01be 8FEF ldi r24,lo8(-1)
437 01c0 87BB out 55-0x20,r24
186:motorctrl.c **** // set up a2d converter
187:motorctrl.c **** a2dSetPrescaler(ADC_PRESCALE_DIV8);
438 .stabn 68,0,187,.LM39-motorCommand
439 .LM39:
440 01c2 83E0 ldi r24,lo8(3)
441 01c4 0E94 0000 call a2dSetPrescaler
188:motorctrl.c ****
189:motorctrl.c **** // initialize encoder
190:motorctrl.c **** encoderInit();
442 .stabn 68,0,190,.LM40-motorCommand
443 .LM40:
444 01c8 0E94 0000 call encoderInit
191:motorctrl.c ****
192:motorctrl.c **** // setup PWM on timer1
193:motorctrl.c **** timer1SetPrescaler(TIMER_CLK_DIV8);
445 .stabn 68,0,193,.LM41-motorCommand
446 .LM41:
447 01cc 82E0 ldi r24,lo8(2)
448 01ce 0E94 0000 call timer1SetPrescaler
194:motorctrl.c **** timer1PWMInit(10);
449 .stabn 68,0,194,.LM42-motorCommand
450 .LM42:
451 01d2 8AE0 ldi r24,lo8(10)
452 01d4 0E94 0000 call timer1PWMInit
195:motorctrl.c **** timer1PWMAOn();
453 .stabn 68,0,195,.LM43-motorCommand
454 .LM43:
455 01d8 0E94 0000 call timer1PWMAOn
196:motorctrl.c **** timer1PWMBOn();
456 .stabn 68,0,196,.LM44-motorCommand
457 .LM44:
458 01dc 0E94 0000 call timer1PWMBOn
197:motorctrl.c **** // attach pid service
198:motorctrl.c **** timerAttach(TIMER1OVERFLOW_INT, pidService);
459 .stabn 68,0,198,.LM45-motorCommand
460 .LM45:
461 01e0 60E0 ldi r22,lo8(pm(pidService))
462 01e2 70E0 ldi r23,hi8(pm(pidService))
463 01e4 812F mov r24,r17
464 01e6 0E94 0000 call timerAttach
199:motorctrl.c ****
200:motorctrl.c **** // ***** this part currently unused *****
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 13
201:motorctrl.c **** // setup metering timer
202:motorctrl.c **** // count with 32.768KHz/8
203:motorctrl.c **** //timer2SetPrescaler(TIMERRTC_CLK_DIV8);
204:motorctrl.c **** timer2SetPrescaler(TIMERRTC_CLK_DIV1024);
465 .stabn 68,0,204,.LM46-motorCommand
466 .LM46:
467 01ea 87E0 ldi r24,lo8(7)
468 01ec 0E94 0000 call timer2SetPrescaler
205:motorctrl.c **** // switch to asynchronous input (32KHz crystal)
206:motorctrl.c **** //sbi(ASSR, AS2);
207:motorctrl.c **** // attach service
208:motorctrl.c **** //timerAttach(TIMER2OVERFLOW_INT, timerService);
209:motorctrl.c **** // **************************************
210:motorctrl.c ****
211:motorctrl.c **** while(1)
469 .stabn 68,0,211,.LM47-motorCommand
470 .LM47:
471 01f0 A5C0 rjmp .L13
212:motorctrl.c **** {
213:motorctrl.c **** // pass characters received on the uart (serial port)
214:motorctrl.c **** // into the cmdline processor
215:motorctrl.c **** while(uartReceiveByte(&c)) cmdlineInputFunc(c);
472 .stabn 68,0,215,.LM48-motorCommand
473 .LM48:
474 .L9:
475 01f2 8981 ldd r24,Y+1
476 01f4 0E94 0000 call cmdlineInputFunc
477 .L12:
478 01f8 CE01 movw r24,r28
479 01fa 0196 adiw r24,1
480 01fc 0E94 0000 call uartReceiveByte
481 0200 C82E mov r12,r24
482 0202 8823 tst r24
483 0204 B1F7 brne .L9
216:motorctrl.c ****
217:motorctrl.c **** // run the cmdline execution functions
218:motorctrl.c **** cmdlineMainLoop();
484 .stabn 68,0,218,.LM49-motorCommand
485 .LM49:
486 0206 0E94 0000 call cmdlineMainLoop
219:motorctrl.c ****
220:motorctrl.c **** // print debug messages
221:motorctrl.c **** if(ServiceFlag)
487 .stabn 68,0,221,.LM50-motorCommand
488 .LM50:
489 020a 8091 0000 lds r24,ServiceFlag
490 020e 8823 tst r24
491 0210 99F3 breq .L12
222:motorctrl.c **** {
223:motorctrl.c **** rprintf("Cyc=");
492 .stabn 68,0,223,.LM51-motorCommand
493 .LM51:
494 0212 80E0 ldi r24,lo8(__c.1)
495 0214 90E0 ldi r25,hi8(__c.1)
496 0216 9F93 push r25
497 0218 8F93 push r24
498 021a 81E0 ldi r24,lo8(1)
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 14
499 021c D82E mov r13,r24
500 021e DF92 push r13
501 0220 0E94 0000 call rprintf1RamRom
224:motorctrl.c **** rprintfNum(10, 6, FALSE, ' ', Cycles);
502 .stabn 68,0,224,.LM52-motorCommand
503 .LM52:
504 0224 8091 0000 lds r24,Cycles
505 0228 9091 0000 lds r25,(Cycles)+1
506 022c A091 0000 lds r26,(Cycles)+2
507 0230 B091 0000 lds r27,(Cycles)+3
508 0234 7C01 movw r14,r24
509 0236 8D01 movw r16,r26
510 0238 20E2 ldi r18,lo8(32)
511 023a 4C2D mov r20,r12
512 023c 66E0 ldi r22,lo8(6)
513 023e 8AE0 ldi r24,lo8(10)
514 0240 0E94 0000 call rprintfNum
225:motorctrl.c **** rprintf(" Pos=");
515 .stabn 68,0,225,.LM53-motorCommand
516 .LM53:
517 0244 0F90 pop __tmp_reg__
518 0246 0F90 pop __tmp_reg__
519 0248 0F90 pop __tmp_reg__
520 024a 80E0 ldi r24,lo8(__c.2)
521 024c 90E0 ldi r25,hi8(__c.2)
522 024e 9F93 push r25
523 0250 8F93 push r24
524 0252 DF92 push r13
525 0254 0E94 0000 call rprintf1RamRom
226:motorctrl.c **** rprintfNum(10, 7, TRUE, ' ', Controller.feedback);
526 .stabn 68,0,226,.LM54-motorCommand
527 .LM54:
528 0258 E090 0000 lds r14,Controller+44
529 025c F090 0000 lds r15,(Controller+44)+1
530 0260 0091 0000 lds r16,(Controller+44)+2
531 0264 1091 0000 lds r17,(Controller+44)+3
532 0268 20E2 ldi r18,lo8(32)
533 026a 4FEF ldi r20,lo8(-1)
534 026c 67E0 ldi r22,lo8(7)
535 026e 8AE0 ldi r24,lo8(10)
536 0270 0E94 0000 call rprintfNum
227:motorctrl.c **** rprintf(" Ep=");
537 .stabn 68,0,227,.LM55-motorCommand
538 .LM55:
539 0274 0F90 pop __tmp_reg__
540 0276 0F90 pop __tmp_reg__
541 0278 0F90 pop __tmp_reg__
542 027a 80E0 ldi r24,lo8(__c.3)
543 027c 90E0 ldi r25,hi8(__c.3)
544 027e 9F93 push r25
545 0280 8F93 push r24
546 0282 DF92 push r13
547 0284 0E94 0000 call rprintf1RamRom
228:motorctrl.c **** rprintfNum(10, 7, TRUE, ' ', Controller.error);
548 .stabn 68,0,228,.LM56-motorCommand
549 .LM56:
550 0288 E090 0000 lds r14,Controller+12
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 15
551 028c F090 0000 lds r15,(Controller+12)+1
552 0290 0091 0000 lds r16,(Controller+12)+2
553 0294 1091 0000 lds r17,(Controller+12)+3
554 0298 20E2 ldi r18,lo8(32)
555 029a 4FEF ldi r20,lo8(-1)
556 029c 67E0 ldi r22,lo8(7)
557 029e 8AE0 ldi r24,lo8(10)
558 02a0 0E94 0000 call rprintfNum
229:motorctrl.c **** rprintf(" Ei=");
559 .stabn 68,0,229,.LM57-motorCommand
560 .LM57:
561 02a4 0F90 pop __tmp_reg__
562 02a6 0F90 pop __tmp_reg__
563 02a8 0F90 pop __tmp_reg__
564 02aa 80E0 ldi r24,lo8(__c.4)
565 02ac 90E0 ldi r25,hi8(__c.4)
566 02ae 9F93 push r25
567 02b0 8F93 push r24
568 02b2 DF92 push r13
569 02b4 0E94 0000 call rprintf1RamRom
230:motorctrl.c **** rprintfNum(10, 7, TRUE, ' ', Controller.error_integ);
570 .stabn 68,0,230,.LM58-motorCommand
571 .LM58:
572 02b8 E090 0000 lds r14,Controller+20
573 02bc F090 0000 lds r15,(Controller+20)+1
574 02c0 0091 0000 lds r16,(Controller+20)+2
575 02c4 1091 0000 lds r17,(Controller+20)+3
576 02c8 20E2 ldi r18,lo8(32)
577 02ca 4FEF ldi r20,lo8(-1)
578 02cc 67E0 ldi r22,lo8(7)
579 02ce 8AE0 ldi r24,lo8(10)
580 02d0 0E94 0000 call rprintfNum
231:motorctrl.c **** rprintf(" Ed=");
581 .stabn 68,0,231,.LM59-motorCommand
582 .LM59:
583 02d4 0F90 pop __tmp_reg__
584 02d6 0F90 pop __tmp_reg__
585 02d8 0F90 pop __tmp_reg__
586 02da 80E0 ldi r24,lo8(__c.5)
587 02dc 90E0 ldi r25,hi8(__c.5)
588 02de 9F93 push r25
589 02e0 8F93 push r24
590 02e2 DF92 push r13
591 02e4 0E94 0000 call rprintf1RamRom
232:motorctrl.c **** rprintfNum(10, 7, TRUE, ' ', Controller.error_diff);
592 .stabn 68,0,232,.LM60-motorCommand
593 .LM60:
594 02e8 E090 0000 lds r14,Controller+24
595 02ec F090 0000 lds r15,(Controller+24)+1
596 02f0 0091 0000 lds r16,(Controller+24)+2
597 02f4 1091 0000 lds r17,(Controller+24)+3
598 02f8 20E2 ldi r18,lo8(32)
599 02fa 4FEF ldi r20,lo8(-1)
600 02fc 67E0 ldi r22,lo8(7)
601 02fe 8AE0 ldi r24,lo8(10)
602 0300 0E94 0000 call rprintfNum
233:motorctrl.c **** rprintf(" out=");
GAS LISTING C:\DOCUME~1\pstang\LOCALS~1\Temp/cciGaaaa.s page 16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -