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

📄 interrupt.lis

📁 国内某测温系统信号处理处理板的代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00C0 A998              cbi 0x15,1
 00C2                   .dbline 64
 00C2           ;  SEI();
 00C2 7894              sei
 00C4                   .dbline -2
 00C4           L8:
 00C4 00D0              rcall pop_lset
 00C6                   .dbline 0 ; func end
 00C6 1895              reti
 00C8                   .dbend
                        .area data(ram, con, rel)
 0002                   .dbfile E:\任务\RASS\rass_soft\interrupt.c
 0002           L12:
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile E:\任务\RASS\rass_soft\interrupt.c
                        .area text(rom, con, rel)
 00C8                   .dbfile E:\任务\RASS\rass_soft\interrupt.c
 00C8                   .dbfunc e ana_comp_isr _ana_comp_isr fV
 00C8                   .dbsym s ana_num L12 c
 00C8           ;      dert_freq -> R20,R21
 00C8           ;      dert_time -> R20,R21
 00C8           ;        ana_com -> y+0
                        .even
 00C8           _ana_comp_isr::
 00C8 2A92              st -y,R2
 00CA 3A92              st -y,R3
 00CC 4A92              st -y,R4
 00CE 5A92              st -y,R5
 00D0 0A93              st -y,R16
 00D2 1A93              st -y,R17
 00D4 2A93              st -y,R18
 00D6 3A93              st -y,R19
 00D8 8A93              st -y,R24
 00DA 9A93              st -y,R25
 00DC EA93              st -y,R30
 00DE FA93              st -y,R31
 00E0 2FB6              in R2,0x3f
 00E2 2A92              st -y,R2
 00E4 00D0              rcall push_gset2
 00E6 2497              sbiw R28,4
 00E8                   .dbline -1
 00E8                   .dbline 70
 00E8           ; }
 00E8           ; 
 00E8           ; 
 00E8           ; //#pragma interrupt_handler ana_comp_isr:13
 00E8           ; void ana_comp_isr(void)
 00E8           ; {
 00E8                   .dbline 72
 00E8           ;  //analog comparator compare event
 00E8           ;  rass2dp=0;
 00E8 2224              clr R2
 00EA 20920000          sts _rass2dp,R2
 00EE                   .dbline 73
 00EE           ;  PORTC ^=1<<pc2;
 00EE 84E0              ldi R24,4
 00F0 25B2              in R2,0x15
 00F2 2826              eor R2,R24
 00F4 25BA              out 0x15,R2
 00F6                   .dbline 74
 00F6           ;  if(ana_freq)
 00F6 5BC0              rjmp L10
 00F8           X0:
 00F8                   .dbline 75
 00F8           ;       {
 00F8                   .dbline 82
 00F8           ;         //unsigned int test_freq;
 00F8           ;     unsigned int ana_com[2];
 00F8           ;     unsigned int dert_time;
 00F8           ;     static unsigned char ana_num=0;
 00F8           ;     unsigned int dert_freq;
 00F8           ;     
 00F8           ;               ana_com[ana_num++]=(TCNT1H<<8)+TCNT1L;
 00F8 20900200          lds R2,L12
 00FC 3324              clr R3
 00FE 822D              mov R24,R2
 0100 8F5F              subi R24,255    ; addi 1
 0102 80930200          sts L12,R24
 0106 02E0              ldi R16,2
 0108 10E0              ldi R17,0
 010A 9101              movw R18,R2
 010C 00D0              rcall empy16s
 010E F801              movw R30,R16
 0110 CE01              movw R24,R28
 0112 E80F              add R30,R24
 0114 F91F              adc R31,R25
 0116 2CB4              in R2,0x2c
 0118 3DB4              in R3,0x2d
 011A 3182              std z+1,R3
 011C 2082              std z+0,R2
 011E                   .dbline 83
 011E           ;               if(ana_num>1)
 011E 81E0              ldi R24,1
 0120 20900200          lds R2,L12
 0124 8215              cp R24,R2
 0126 08F0              brlo X1
 0128 42C0              rjmp L13
 012A           X1:
 012A                   .dbline 84
 012A           ;                       {
 012A                   .dbline 85
 012A           ;                               ana_num=0;
 012A 2224              clr R2
 012C 20920200          sts L12,R2
 0130                   .dbline 86
 0130           ;                               if(ana_com[0]<ana_com[1])
 0130 2A80              ldd R2,y+2
 0132 3B80              ldd R3,y+3
 0134 4880              ldd R4,y+0
 0136 5980              ldd R5,y+1
 0138 4214              cp R4,R2
 013A 5304              cpc R5,R3
 013C 20F4              brsh L15
 013E                   .dbline 87
 013E           ;                                       dert_time=ana_com[1]-ana_com[0];
 013E A101              movw R20,R2
 0140 4419              sub R20,R4
 0142 5509              sbc R21,R5
 0144 08C0              rjmp L16
 0146           L15:
 0146                   .dbline 89
 0146           ;                               else
 0146           ;                                       dert_time=ana_com[1]+0xffff-ana_com[0];
 0146 2880              ldd R2,y+0
 0148 3980              ldd R3,y+1
 014A 4A81              ldd R20,y+2
 014C 5B81              ldd R21,y+3
 014E 4150              subi R20,1  ; offset = 65535
 0150 5040              sbci R21,0
 0152 4219              sub R20,R2
 0154 5309              sbc R21,R3
 0156           L16:
 0156                   .dbline 90
 0156           ;                               test_freq =7200/(dert_time+1);
 0156 9A01              movw R18,R20
 0158 2F5F              subi R18,255  ; offset = 1
 015A 3F4F              sbci R19,255
 015C 00E2              ldi R16,7200
 015E 1CE1              ldi R17,28
 0160 00D0              rcall div16u
 0162 10930100          sts _test_freq+1,R17
 0166 00930000          sts _test_freq,R16
 016A                   .dbline 91
 016A           ;                               dert_freq=(test_freq>seed)?(test_freq-seed):(seed-test_freq);
 016A 20900000          lds R2,_seed
 016E 30900100          lds R3,_seed+1
 0172 2801              movw R4,R16
 0174 2016              cp R2,R16
 0176 3106              cpc R3,R17
 0178 20F4              brsh L20
 017A B201              movw R22,R4
 017C 6219              sub R22,R2
 017E 7309              sbc R23,R3
 0180 0AC0              rjmp L21
 0182           L20:
 0182 20900000          lds R2,_test_freq
 0186 30900100          lds R3,_test_freq+1
 018A 60910000          lds R22,_seed
 018E 70910100          lds R23,_seed+1
 0192 6219              sub R22,R2
 0194 7309              sbc R23,R3
 0196           L21:
 0196 AB01              movw R20,R22
 0198                   .dbline 92
 0198           ;                               if(dert_freq<50)
 0198 6233              cpi R22,50
 019A E0E0              ldi R30,0
 019C 7E07              cpc R23,R30
 019E 20F4              brsh L22
 01A0                   .dbline 93
 01A0           ;                                       rass2dp=0;
 01A0 2224              clr R2
 01A2 20920000          sts _rass2dp,R2
 01A6 03C0              rjmp L23
 01A8           L22:
 01A8                   .dbline 95
 01A8           ;                               else
 01A8           ;                                       rass2dp=1;
 01A8 81E0              ldi R24,1
 01AA 80930000          sts _rass2dp,R24
 01AE           L23:
 01AE                   .dbline 96
 01AE           ;                        } 
 01AE           L13:
 01AE                   .dbline 97
 01AE           L10:
 01AE                   .dbline -2
 01AE           L9:
 01AE 2496              adiw R28,4
 01B0 00D0              rcall pop_gset2
 01B2 2990              ld R2,y+
 01B4 2FBE              out 0x3f,R2
 01B6 F991              ld R31,y+
 01B8 E991              ld R30,y+
 01BA 9991              ld R25,y+
 01BC 8991              ld R24,y+
 01BE 3991              ld R19,y+
 01C0 2991              ld R18,y+
 01C2 1991              ld R17,y+
 01C4 0991              ld R16,y+
 01C6 5990              ld R5,y+
 01C8 4990              ld R4,y+
 01CA 3990              ld R3,y+
 01CC 2990              ld R2,y+
 01CE                   .dbline 0 ; func end
 01CE 1895              reti
 01D0                   .dbsym r dert_freq 20 i
 01D0                   .dbsym r dert_time 20 i
 01D0                   .dbsym l ana_com 0 A[4:2]i
 01D0                   .dbend

⌨️ 快捷键说明

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