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

📄 test_pc10_main.lis

📁 AVR单片机开发中
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 02C4 01E9              ldi R16,657
 02C6 12E0              ldi R17,2
 02C8 D0DF              xcall _inp
 02CA 202E              mov R2,R16
 02CC 3324              clr R3
 02CE 4424              clr R4
 02D0 5524              clr R5
 02D2 FE01              movw R30,R28
 02D4 2282              std z+2,R2
 02D6 3382              std z+3,R3
 02D8 4482              std z+4,R4
 02DA 5582              std z+5,R5
 02DC                   .dbline 317
 02DC           ;       printf("%d    ",high_byte);
 02DC 4882              std y+0,R4
 02DE 5982              std y+1,R5
 02E0 222D              mov R18,R2
 02E2 332D              mov R19,R3
 02E4 00E0              ldi R16,<L65
 02E6 10E0              ldi R17,>L65
 02E8 0E940000          xcall _printf
 02EC                   .dbline 318
 02EC           ;       mid_byte=inp(GYRO_BASE+2);
 02EC 02E9              ldi R16,658
 02EE 12E0              ldi R17,2
 02F0 BCDF              xcall _inp
 02F2 C02E              mov R12,R16
 02F4 DD24              clr R13
 02F6                   .dbline 319
 02F6           ;       printf("%d    ",mid_byte);
 02F6 9601              movw R18,R12
 02F8 00E0              ldi R16,<L65
 02FA 10E0              ldi R17,>L65
 02FC 0E940000          xcall _printf
 0300                   .dbline 320
 0300           ;       low_byte=inp(GYRO_BASE+3);
 0300 03E9              ldi R16,659
 0302 12E0              ldi R17,2
 0304 B2DF              xcall _inp
 0306 A02E              mov R10,R16
 0308 BB24              clr R11
 030A                   .dbline 321
 030A           ;       printf("%d    ",low_byte);
 030A 9501              movw R18,R10
 030C 00E0              ldi R16,<L65
 030E 10E0              ldi R17,>L65
 0310 0E940000          xcall _printf
 0314                   .dbline 322
 0314           ;       outp(GYRO_BASE+4,0x00);
 0314 2227              clr R18
 0316 04E9              ldi R16,660
 0318 12E0              ldi R17,2
 031A 9DDF              xcall _outp
 031C                   .dbline 323
 031C           ;       if(high_byte>=0x80)
 031C 40E8              ldi R20,128
 031E 50E0              ldi R21,0
 0320 60E0              ldi R22,0
 0322 70E0              ldi R23,0
 0324 FE01              movw R30,R28
 0326 2280              ldd R2,z+2
 0328 3380              ldd R3,z+3
 032A 4480              ldd R4,z+4
 032C 5580              ldd R5,z+5
 032E 2416              cp R2,R20
 0330 3506              cpc R3,R21
 0332 4606              cpc R4,R22
 0334 5706              cpc R5,R23
 0336 60F0              brlo L66
 0338                   .dbline 324
 0338           ;       high_byte |= 0xffffff00;
 0338 40E0              ldi R20,0
 033A 5FEF              ldi R21,255
 033C 6FEF              ldi R22,255
 033E 7FEF              ldi R23,255
 0340 242A              or R2,R20
 0342 352A              or R3,R21
 0344 462A              or R4,R22
 0346 572A              or R5,R23
 0348 2282              std z+2,R2
 034A 3382              std z+3,R3
 034C 4482              std z+4,R4
 034E 5582              std z+5,R5
 0350           L66:
 0350                   .dbline 325
 0350           ;       angle=(long)(((high_byte)<<16)+((mid_byte&0x00ff)<<8)+(low_byte&0x00ff));
 0350 C601              movw R24,R12
 0352 9070              andi R25,0
 0354 982F              mov R25,R24
 0356 8827              clr R24
 0358 1C01              movw R2,R24
 035A 4424              clr R4
 035C 5524              clr R5
 035E FE01              movw R30,R28
 0360 6280              ldd R6,z+2
 0362 7380              ldd R7,z+3
 0364 8480              ldd R8,z+4
 0366 9580              ldd R9,z+5
 0368 862C              mov R8,R6
 036A 972C              mov R9,R7
 036C 6624              clr R6
 036E 7724              clr R7
 0370 620C              add R6,R2
 0372 731C              adc R7,R3
 0374 841C              adc R8,R4
 0376 951C              adc R9,R5
 0378 C501              movw R24,R10
 037A 9070              andi R25,0
 037C 1C01              movw R2,R24
 037E 4424              clr R4
 0380 5524              clr R5
 0382 620C              add R6,R2
 0384 731C              adc R7,R3
 0386 841C              adc R8,R4
 0388 951C              adc R9,R5
 038A 6682              std z+6,R6
 038C 7782              std z+7,R7
 038E 8086              std z+8,R8
 0390 9186              std z+9,R9
 0392                   .dbline 326
 0392           ;       rob_angle=angle/2742.9797399;
 0392 0681              ldd R16,z+6
 0394 1781              ldd R17,z+7
 0396 2085              ldd R18,z+8
 0398 3185              ldd R19,z+9
 039A 0E940000          xcall long2fp
 039E 3A93              st -y,R19
 03A0 2A93              st -y,R18
 03A2 1A93              st -y,R17
 03A4 0A93              st -y,R16
 03A6 00E0              ldi R16,<L68
 03A8 10E0              ldi R17,>L68
 03AA 0E940000          xcall lpm32
 03AE 3A93              st -y,R19
 03B0 2A93              st -y,R18
 03B2 1A93              st -y,R17
 03B4 0A93              st -y,R16
 03B6 0E940000          xcall div32f
 03BA 10930200          sts _rob_angle+1,R17
 03BE 00930100          sts _rob_angle,R16
 03C2 30930400          sts _rob_angle+2+1,R19
 03C6 20930300          sts _rob_angle+2,R18
 03CA                   .dbline 327
 03CA           ;       return 1;
 03CA 01E0              ldi R16,1
 03CC 10E0              ldi R17,0
 03CE                   .dbline -2
 03CE           L62:
 03CE 2A96              adiw R28,10
 03D0 0E940000          xcall pop_gset4
 03D4                   .dbline 0 ; func end
 03D4 0895              ret
 03D6                   .dbsym l angle 6 L
 03D6                   .dbsym r cmplt 10 I
 03D6                   .dbsym r low_byte 10 i
 03D6                   .dbsym r mid_byte 12 i
 03D6                   .dbsym l high_byte 2 l
 03D6                   .dbend
 03D6                   .dbfunc e relay_write _relay_write fV
 03D6           ;              p -> R20,R21
 03D6           ;           data -> R16
                        .even
 03D6           _relay_write::
 03D6 0E940000          xcall push_gset1
 03DA                   .dbline -1
 03DA                   .dbline 332
 03DA           ;                       
 03DA           ; }
 03DA           ; ///////////////////////////////////////////////////////////////////////////////       
 03DA           ; void relay_write(unsigned char data)
 03DA           ;         {
 03DA                   .dbline 334
 03DA           ;                unsigned char *p;
 03DA           ;                p = (unsigned char *) 0x2250;
 03DA 40E5              ldi R20,8784
 03DC 52E2              ldi R21,34
 03DE                   .dbline 336
 03DE           ;                
 03DE           ;                     *p=data;
 03DE FA01              movw R30,R20
 03E0 0083              std z+0,R16
 03E2                   .dbline -2
 03E2                   .dbline 338
 03E2           ;    
 03E2           ;          }
 03E2           L69:
 03E2 0E940000          xcall pop_gset1
 03E6                   .dbline 0 ; func end
 03E6 0895              ret
 03E8                   .dbsym r p 20 pc
 03E8                   .dbsym r data 16 c
 03E8                   .dbend
 03E8                   .dbfunc e relay_read _relay_read fc
 03E8           ;              p -> R16,R17
                        .even
 03E8           _relay_read::
 03E8                   .dbline -1
 03E8                   .dbline 342
 03E8           ; 
 03E8           ; 
 03E8           ; unsigned char relay_read(void)          
 03E8           ; {
 03E8                   .dbline 345
 03E8           ; 
 03E8           ;        unsigned char *p;
 03E8           ;          p = (unsigned char *) 0x2250;
 03E8 00E5              ldi R16,8784
 03EA 12E2              ldi R17,34
 03EC                   .dbline 346
 03EC           ;        return   *p;
 03EC F801              movw R30,R16
 03EE 0081              ldd R16,z+0
 03F0                   .dbline -2
 03F0           L70:
 03F0                   .dbline 0 ; func end
 03F0 0895              ret
 03F2                   .dbsym r p 16 pc
 03F2                   .dbend
 03F2                   .dbfunc e motor_pwm _motor_pwm fV
 03F2           ;          right -> R18,R19
 03F2           ;           left -> R16,R17
                        .even
 03F2           _motor_pwm::
 03F2                   .dbline -1
 03F2                   .dbline 355
 03F2           ; 
 03F2           ; } 
 03F2           ; ////////////////////////////////////////////////////////////////////////////
 03F2           ; /////////////
 03F2           ; /////////              pwm
 03F2           ; ///////
 03F2           ; /////////////////////////////////////////////////////////////////////////////
 03F2           ; void  motor_pwm ( int left,int right )
 03F2           ; {
 03F2                   .dbline 357
 03F2           ; 
 03F2           ;  DDRB|=0XE0;
 03F2 87B3              in R24,0x17
 03F4 806E              ori R24,224
 03F6 87BB              out 0x17,R24
 03F8                   .dbline 358
 03F8           ;  TCCR1A=0xA8;
 03F8 88EA              ldi R24,168
 03FA 8FBD              out 0x2f,R24
 03FC                   .dbline 359
 03FC           ;  TCCR1B=0x11;
 03FC 81E1              ldi R24,17
 03FE 8EBD              out 0x2e,R24
 0400                   .dbline 360
 0400           ;  ICR1  = 0x6000;        
 0400 80E0              ldi R24,24576
 0402 90E6              ldi R25,96
 0404 90934700          sts 70+1,R25
 0408 80934600          sts 70,R24
 040C                   .dbline 361
 040C           ;  OCR1A = left;        /////12288 is  stop
 040C 10934B00          sts 74+1,R17
 0410 00934A00          sts 74,R16
 0414                   .dbline 362
 0414           ;  OCR1B = right;       //// range is from 0 to 24576
 0414 30934900          sts 72+1,R19
 0418 20934800          sts 72,R18
 041C                   .dbline -2
 041C                   .dbline 365
 041C           ; 
 041C           ;  //OCR1C = 0x3000 + mid;
 041C           ; }
 041C           L71:
 041C                   .dbline 0 ; func end
 041C 0895              ret
 041E                   .dbsym r right 18 I
 041E                   .dbsym r left 16 I
 041E                   .dbend
 041E                   .dbfunc e mainboard_pwm _mainboard_pwm fV
 041E           ;           pwm3 -> y+0
 041E           ;           pwm2 -> R18,R19
 041E           ;           pwm1 -> R16,R17
                        .even
 041E           _mainboard_pwm::
 041E                   .dbline -1
 041E                   .dbline 368
 041E           ; 
 041E           ; void  mainboard_pwm(int pwm1, int pwm2, int pwm3)
 041E           ; {
 041E                   .dbline 369
 041E           ;     DDRE |= 0x38;
 041E 82B1              in R24,0x2
 0420 8863              ori R24,56
 0422 82B9              out 0x2,R24
 0424                   .dbline 370
 0424           ;     TCCR3A = 0xA8;
 0424 88EA              ldi R24,168
 0426 80938B00          sts 139,R24
 042A                   .dbline 371
 042A           ;     TCCR3B = 0x12;
 042A 82E1              ldi R24,18
 042C 80938A00          sts 138,R24
 0430                   .dbline 372
 0430           ;     ICR3  = 0x4E20;
 0430 80E2              ldi R24,20000
 0432 9EE4              ldi R25,78
 0434 90938100          sts 128+1,R25
 0438 80938000          sts 128,R24
 043C                   .dbline 373
 043C           ;     OCR3A = pwm1;
 043C 10938700          sts 134+1,R17
 0440 00938600          sts 134,R16
 0444                   .dbline 374
 0444           ;     OCR3B = pwm2;
 0444 30938500          sts 132+1,R19
 0448 20938400          sts 132,R18
 044C                   .dbline 375
 044C           ;       OCR3C = pwm3;
 044C 0880              ldd R0,y+0
 044E 1980              ldd R1,y+1
 0450 10928300          sts 130+1,R1
 0454 00928200          sts 130,R0
 0458                   .dbline -2
 0458                   .dbline 377
 0458           ;    
 0458           ;  }
 0458           L72:
 0458                   .dbline 0 ; func end
 0458 0895              ret
 045A                   .dbsym l pwm3 0 I
 045A                   .dbsym r pwm2 18 I
 045A                   .dbsym r pwm1 16 I
 045A                   .dbend
 045A                   .dbfunc e mainboard_pwm1 _mainboard_pwm1 fV
 045A           ;          frequ -> R20,R21
                        .even
 045A           _mainboard_pwm1::
 045A 0E940000          xcall push_gset1
 045E A801              movw R20,R16
 0460                   .dbline -1
 0460                   .dbline 380
 0460           ; 
 0460           ;  void  mainboard_pwm1( int frequ)
 0460           ; {
 0460                   .dbline 381
 0460           ;     DDRE |= 0x38;
 0460 82B1              in R24,0x2
 0462 8863              ori R24,56
 0464 82B9              out 0x2,R24

⌨️ 快捷键说明

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