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

📄 dtm48-td.lis

📁 M48做的航模用直流电机调速器
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 00CA 0F5F              subi R16,255  ; offset = 1
 00CC 1F4F              sbci R17,255
 00CE           L14:
 00CE                   .dbline 118
 00CE 0637              cpi R16,118
 00D0 E4E0              ldi R30,4
 00D2 1E07              cpc R17,R30
 00D4 D0F3              brlo L11
 00D6                   .dbline -2
 00D6           L10:
 00D6                   .dbline 0 ; func end
 00D6 0895              ret
 00D8                   .dbsym r i1 16 i
 00D8                   .dbend
 00D8                   .dbfunc e delay _delay fV
 00D8           ;             i2 -> R20,R21
 00D8           ;              n -> R22,R23
                        .even
 00D8           _delay::
 00D8 00D0              rcall push_gset2
 00DA B801              movw R22,R16
 00DC                   .dbline -1
 00DC                   .dbline 123
 00DC           ;     ;
 00DC           ; }
 00DC           ; 
 00DC           ; void delay(unsigned int n)
 00DC           ; {
 00DC                   .dbline 124
 00DC           ;  unsigned int i2=0;
 00DC 4427              clr R20
 00DE 5527              clr R21
 00E0 04C0              rjmp L17
 00E2           L16:
 00E2                   .dbline 126
 00E2                   .dbline 126
 00E2 F0DF              rcall _delay_1ms
 00E4                   .dbline 127
 00E4 4F5F              subi R20,255  ; offset = 1
 00E6 5F4F              sbci R21,255
 00E8                   .dbline 127
 00E8 A895              wdr
 00EA                   .dbline 128
 00EA           L17:
 00EA                   .dbline 125
 00EA           ;    while(i2<n)
 00EA 4617              cp R20,R22
 00EC 5707              cpc R21,R23
 00EE C8F3              brlo L16
 00F0                   .dbline -2
 00F0           L15:
 00F0 00D0              rcall pop_gset2
 00F2                   .dbline 0 ; func end
 00F2 0895              ret
 00F4                   .dbsym r i2 20 i
 00F4                   .dbsym r n 22 i
 00F4                   .dbend
                        .area vector(rom, abs)
                        .org 14
 000E 7AC0              rjmp _timer2_compa_isr
                        .area text(rom, con, rel)
 00F4                   .dbfile H:\ele\AVR\ICC\diantiao\dtm48-td\dtm48-td.C
 00F4                   .dbfunc e timer2_compa_isr _timer2_compa_isr fV
                        .even
 00F4           _timer2_compa_isr::
 00F4 8A93              st -y,R24
 00F6 8FB7              in R24,0x3f
 00F8 8A93              st -y,R24
 00FA                   .dbline -1
 00FA                   .dbline 133
 00FA                   .dbline 135
 00FA 80910200          lds R24,_zb
 00FE 8F3F              cpi R24,255
 0100 20F4              brsh L20
 0102                   .dbline 136
 0102                   .dbline 136
 0102 5998              cbi 0xb,1
 0104                   .dbline 136
 0104 5C98              cbi 0xb,4
 0106                   .dbline 136
 0106 2E98              cbi 0x5,6
 0108                   .dbline 136
 0108 5E98              cbi 0xb,6
 010A                   .dbline 136
 010A           L20:
 010A                   .dbline -2
 010A           L19:
 010A 8991              ld R24,y+
 010C 8FBF              out 0x3f,R24
 010E 8991              ld R24,y+
 0110                   .dbline 0 ; func end
 0110 1895              reti
 0112                   .dbend
                        .area vector(rom, abs)
                        .org 18
 0012 89C0              rjmp _timer2_ovf_isr
                        .area text(rom, con, rel)
 0112                   .dbfile H:\ele\AVR\ICC\diantiao\dtm48-td\dtm48-td.C
 0112                   .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
                        .even
 0112           _timer2_ovf_isr::
 0112 2A92              st -y,R2
 0114 3A92              st -y,R3
 0116 8A93              st -y,R24
 0118 2FB6              in R2,0x3f
 011A 2A92              st -y,R2
 011C                   .dbline -1
 011C                   .dbline 141
 011C           ;    {delay_1ms();
 011C           ;     i2++; WDR();
 011C           ;    }
 011C           ; }
 011C           ; 
 011C           ; #pragma interrupt_handler timer2_compa_isr:8
 011C           ; void timer2_compa_isr(void)
 011C           ; {
 011C           ;  //compare occured TCNT2=OCR2a
 011C           ;  if(zb<255)
 011C           ;   {j10;j20; j30;j40;} 
 011C           ; }
 011C           ; 
 011C           ; #pragma interrupt_handler timer2_ovf_isr:10
 011C           ; void timer2_ovf_isr(void)
 011C           ; {
 011C                   .dbline 142
 011C           ;   if(zb>0)
 011C 2224              clr R2
 011E 30900200          lds R3,_zb
 0122 2314              cp R2,R3
 0124 68F4              brsh L23
 0126                   .dbline 143
 0126           ;   {
 0126                   .dbline 144
 0126           ;   if(flag==1)
 0126 80910400          lds R24,_flag
 012A 8130              cpi R24,1
 012C 19F4              brne L25
 012E                   .dbline 145
 012E           ;    {j11;j31;}
 012E                   .dbline 145
 012E 599A              sbi 0xb,1
 0130                   .dbline 145
 0130 2E9A              sbi 0x5,6
 0132                   .dbline 145
 0132 06C0              rjmp L26
 0134           L25:
 0134                   .dbline 147
 0134           ;    else
 0134           ;   if(flag==0)
 0134 20900400          lds R2,_flag
 0138 2220              tst R2
 013A 11F4              brne L27
 013C                   .dbline 148
 013C           ;    {j21;j41;}  
 013C                   .dbline 148
 013C 5C9A              sbi 0xb,4
 013E                   .dbline 148
 013E 5E9A              sbi 0xb,6
 0140                   .dbline 148
 0140           L27:
 0140           L26:
 0140                   .dbline 149
 0140           ;   }
 0140           L23:
 0140                   .dbline 150
 0140           ;  TCNT2 = 0x0; //reload counter value
 0140 2224              clr R2
 0142 2092B200          sts 178,R2
 0146                   .dbline 151
 0146           ;  OCR2A=zb;
 0146 20900200          lds R2,_zb
 014A 2092B300          sts 179,R2
 014E                   .dbline -2
 014E           L22:
 014E 2990              ld R2,y+
 0150 2FBE              out 0x3f,R2
 0152 8991              ld R24,y+
 0154 3990              ld R3,y+
 0156 2990              ld R2,y+
 0158                   .dbline 0 ; func end
 0158 1895              reti
 015A                   .dbend
 015A                   .dbfunc e fenc _fenc fi
 015A           ;             bc -> R20,R21
 015A           ;             bb -> R16,R17
                        .even
 015A           _fenc::
 015A 00D0              rcall push_gset1
 015C                   .dbline -1
 015C                   .dbline 156
 015C           ; }
 015C           ; 
 015C           ; 
 015C           ; unit fenc(int bb)             
 015C           ; {
 015C                   .dbline 158
 015C 80910000          lds R24,_mark
 0160 90910100          lds R25,_mark+1
 0164 8C5B              subi R24,188
 0166 9240              sbci R25,2
 0168 0817              cp R16,R24
 016A 1907              cpc R17,R25
 016C 4CF0              brlt L32
 016E 80910000          lds R24,_mark
 0172 90910100          lds R25,_mark+1
 0176 8454              subi R24,68  ; offset = 700
 0178 9D4F              sbci R25,253
 017A 8017              cp R24,R16
 017C 9107              cpc R25,R17
 017E 1CF4              brge L30
 0180           L32:
 0180                   .dbline 158
 0180           ;  int bc;        
 0180           ;  if((bb<mark-700)||(bb>(mark+700))) return(0);              
 0180 0027              clr R16
 0182 1127              clr R17
 0184 37C0              rjmp L29
 0186           L30:
 0186                   .dbline 159
 0186           ;  if(mark<bb)  
 0186 20900000          lds R2,_mark
 018A 30900100          lds R3,_mark+1
 018E 2016              cp R2,R16
 0190 3106              cpc R3,R17
 0192 34F4              brge L33
 0194                   .dbline 160
 0194           ;   {
 0194                   .dbline 161
 0194           ;   flag=1;
 0194 81E0              ldi R24,1
 0196 80930400          sts _flag,R24
 019A                   .dbline 162
 019A           ;   bc=bb-mark;
 019A A801              movw R20,R16
 019C 4219              sub R20,R2
 019E 5309              sbc R21,R3
 01A0                   .dbline 163
 01A0           ;   }
 01A0           L33:
 01A0                   .dbline 164
 01A0           ;  if(mark>bb)
 01A0 20900000          lds R2,_mark
 01A4 30900100          lds R3,_mark+1
 01A8 0215              cp R16,R2
 01AA 1305              cpc R17,R3
 01AC 4CF4              brge L35
 01AE                   .dbline 165
 01AE           ;   {
 01AE                   .dbline 166
 01AE           ;   flag=0;
 01AE 2224              clr R2
 01B0 20920400          sts _flag,R2
 01B4                   .dbline 167
 01B4           ;   bc=mark-bb;
 01B4 40910000          lds R20,_mark
 01B8 50910100          lds R21,_mark+1
 01BC 401B              sub R20,R16
 01BE 510B              sbc R21,R17
 01C0                   .dbline 168
 01C0           ;   }    
 01C0           L35:
 01C0                   .dbline 169
 01C0 89E1              ldi R24,25
 01C2 90E0              ldi R25,0
 01C4 8417              cp R24,R20
 01C6 9507              cpc R25,R21
 01C8 14F0              brlt L37
 01CA                   .dbline 169
 01CA                   .dbline 169
 01CA 2B9A              sbi 0x5,3
 01CC                   .dbline 169
 01CC                   .dbline 169
 01CC 01C0              rjmp L38
 01CE           L37:
 01CE                   .dbline 169
 01CE           ;  if(bc<=25) { LED1; }  else { LED0; }   
 01CE                   .dbline 169
 01CE 2B98              cbi 0x5,3
 01D0                   .dbline 169
 01D0                   .dbline 169
 01D0           L38:
 01D0                   .dbline 170
 01D0           ;  if(bc<=50)  return(0);
 01D0 82E3              ldi R24,50
 01D2 90E0              ldi R25,0
 01D4 8417              cp R24,R20
 01D6 9507              cpc R25,R21
 01D8 1CF0              brlt L39
 01DA                   .dbline 170
 01DA 0027              clr R16
 01DC 1127              clr R17
 01DE 0AC0              rjmp L29
 01E0           L39:
 01E0                   .dbline 171
 01E0           ;  if(bc>=305)  return(255);
 01E0 4133              cpi R20,49
 01E2 E1E0              ldi R30,1
 01E4 5E07              cpc R21,R30
 01E6 1CF0              brlt L41
 01E8                   .dbline 171
 01E8 0FEF              ldi R16,255
 01EA 10E0              ldi R17,0
 01EC 03C0              rjmp L29
 01EE           L41:
 01EE                   .dbline 172
 01EE           ;  else return(bc-50);
 01EE 8A01              movw R16,R20
 01F0 0253              subi R16,50
 01F2 1040              sbci R17,0
 01F4                   .dbline -2
 01F4           L29:
 01F4 00D0              rcall pop_gset1
 01F6                   .dbline 0 ; func end
 01F6 0895              ret
 01F8                   .dbsym r bc 20 I
 01F8                   .dbsym r bb 16 I
 01F8                   .dbend
 01F8                   .dbfunc e cy _cy fV

⌨️ 快捷键说明

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