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

📄 test.lis

📁 针对多路视频远程无线传输问题
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00B6           ;                                  break;
 00B6           L22:
 00B6           L23:
 00B6                   .dbline 89
 00B6 80910000          lds R24,_state
 00BA 8F5F              subi R24,255    ; addi 1
 00BC 80930000          sts _state,R24
 00C0                   .dbline 90
 00C0 04E0              ldi R16,4
 00C2 B5DF              rcall _delay_s
 00C4                   .dbline 91
 00C4           L19:
 00C4                   .dbline -2
 00C4                   .dbline 94
 00C4           ;                  }
 00C4           ;                  state++;
 00C4           ;                  delay_s(4);
 00C4           ;            return;    
 00C4           ;                 // LED3_ON();   
 00C4           ;               }
 00C4           ; }
 00C4           L15:
 00C4 00D0              rcall pop_gset1
 00C6                   .dbline 0 ; func end
 00C6 0895              ret
 00C8                   .dbsym r Counter 20 i
 00C8                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 64C0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 00C8                   .dbfile D:\工作\video切换\soft\按键切换\test.c
 00C8                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 00C8           _timer1_ovf_isr::
 00C8 2A92              st -y,R2
 00CA 8A93              st -y,R24
 00CC 2FB6              in R2,0x3f
 00CE 2A92              st -y,R2
 00D0                   .dbline -1
 00D0                   .dbline 98
 00D0           ; 
 00D0           ; #pragma interrupt_handler timer1_ovf_isr:9
 00D0           ; void timer1_ovf_isr(void)
 00D0           ; {
 00D0                   .dbline 100
 00D0           ;  //TIMER1 has overflowed
 00D0           ;  TCNT1H = 0x00 /*INVALID SETTING*/; //reload counter high value
 00D0 2224              clr R2
 00D2 2DBC              out 0x2d,R2
 00D4                   .dbline 101
 00D4           ;  TCNT1L = 0x00 /*INVALID SETTING*/; //reload counter low value
 00D4 2CBC              out 0x2c,R2
 00D6                   .dbline 102
 00D6           ;  TCCR1B |= 0xc0;  //回到等待上升沿的状态
 00D6 8EB5              in R24,0x2e
 00D8 806C              ori R24,192
 00DA 8EBD              out 0x2e,R24
 00DC                   .dbline -2
 00DC                   .dbline 103
 00DC           ; }
 00DC           L27:
 00DC 2990              ld R2,y+
 00DE 2FBE              out 0x3f,R2
 00E0 8991              ld R24,y+
 00E2 2990              ld R2,y+
 00E4                   .dbline 0 ; func end
 00E4 1895              reti
 00E6                   .dbend
                        .area vector(rom, abs)
                        .org 10
 000A 73C0              rjmp _timer1_capt_isr
                        .area text(rom, con, rel)
 00E6                   .dbfile D:\工作\video切换\soft\按键切换\test.c
 00E6                   .dbfunc e timer1_capt_isr _timer1_capt_isr fV
                        .even
 00E6           _timer1_capt_isr::
 00E6 00D0              rcall push_lset
 00E8 00D0              rcall push_gset1
 00EA                   .dbline -1
 00EA                   .dbline 107
 00EA           ; 
 00EA           ; #pragma interrupt_handler timer1_capt_isr:6
 00EA           ; void timer1_capt_isr(void)
 00EA           ; {
 00EA                   .dbline 111
 00EA           ;  //timer 1 input capture event, read (int)value in ICR1 using;
 00EA           ;  // value=ICR1L;            //Read low byte first (important)
 00EA           ;  // value|=(int)ICR1H << 8; //Read high byte and shift into top byte
 00EA           ;       switch(ICP_Flag)//根据状态值判断捕捉到的是什么跳变信号
 00EA 40910300          lds R20,_ICP_Flag
 00EE 5527              clr R21
 00F0 4030              cpi R20,0
 00F2 4507              cpc R20,R21
 00F4 89F0              breq L33
 00F6           X2:
 00F6 4130              cpi R20,1
 00F8 E0E0              ldi R30,0
 00FA 5E07              cpc R21,R30
 00FC 09F0              breq L32
 00FE 2BC0              rjmp L29
 0100           X3:
 0100                   .dbline 112
 0100           ;        {
 0100           L32:
 0100                   .dbline 114
 0100           ;               case 1://0x40://捕捉到上升沿
 0100           ;                        TCNT1H = 0x00; //reload counter high value
 0100 2224              clr R2
 0102 2DBC              out 0x2d,R2
 0104                   .dbline 115
 0104           ;                        TCNT1L = 0x00; //reload counter low value
 0104 2CBC              out 0x2c,R2
 0106                   .dbline 116
 0106           ;                        TCCR1B &= 0xBF; //ICES1->0,转为捕捉下降沿
 0106 8EB5              in R24,0x2e
 0108 8F7B              andi R24,191
 010A 8EBD              out 0x2e,R24
 010C                   .dbline 117
 010C           ;                        TCCR1B |= 0x82;        //开捕捉,开启定时器,8分频
 010C 8EB5              in R24,0x2e
 010E 8268              ori R24,130
 0110 8EBD              out 0x2e,R24
 0112                   .dbline 118
 0112           ;                        ICP_Flag = 0;
 0112 20920300          sts _ICP_Flag,R2
 0116                   .dbline 119
 0116           ;                        break;
 0116 1FC0              rjmp L30
 0118           L33:
 0118                   .dbline 122
 0118           ;               
 0118           ;               case 0://0x00://捕捉到下降沿
 0118           ;                        TCCR1B &= 0xf8; //关闭定时器
 0118 8EB5              in R24,0x2e
 011A 887F              andi R24,248
 011C 8EBD              out 0x2e,R24
 011E                   .dbline 123
 011E           ;                        ICP_value_down = ICR1L;//Read low byte first (important)
 011E 26B4              in R2,0x26
 0120 3324              clr R3
 0122 30920200          sts _ICP_value_down+1,R3
 0126 20920100          sts _ICP_value_down,R2
 012A                   .dbline 124
 012A           ;                        ICP_value_down |= (int)ICR1H << 8; //Read high byte and shift into top byte
 012A 27B4              in R2,0x27
 012C 3324              clr R3
 012E 322C              mov R3,R2
 0130 2224              clr R2
 0132 40900100          lds R4,_ICP_value_down
 0136 50900200          lds R5,_ICP_value_down+1
 013A 4228              or R4,R2
 013C 5328              or R5,R3
 013E 50920200          sts _ICP_value_down+1,R5
 0142 40920100          sts _ICP_value_down,R4
 0146                   .dbline 125
 0146           ;                        VideoSwitch(ICP_value_down);
 0146 8201              movw R16,R4
 0148 8BDF              rcall _VideoSwitch
 014A                   .dbline 126
 014A           ;                        TCCR1B |= 0x40; //ICES1->1完成一个正脉宽捕捉,回到等待上升沿的状态
 014A 8EB5              in R24,0x2e
 014C 8064              ori R24,64
 014E 8EBD              out 0x2e,R24
 0150                   .dbline 127
 0150           ;                        ICP_Flag = 1;
 0150 81E0              ldi R24,1
 0152 80930300          sts _ICP_Flag,R24
 0156                   .dbline 128
 0156           ;                        break;
 0156           L29:
 0156           L30:
 0156                   .dbline -2
 0156                   .dbline 130
 0156           ;        }
 0156           ; }
 0156           L28:
 0156 00D0              rcall pop_gset1
 0158 00D0              rcall pop_lset
 015A                   .dbline 0 ; func end
 015A 1895              reti
 015C                   .dbend
 015C                   .dbfunc e init_devices _init_devices fV
                        .even
 015C           _init_devices::
 015C                   .dbline -1
 015C                   .dbline 134
 015C           ; 
 015C           ; //call this routine to initialize all peripherals
 015C           ; void init_devices(void)
 015C           ; {
 015C                   .dbline 136
 015C           ;  //stop errant interrupts until set up
 015C           ;  CLI(); //disable all interrupts
 015C F894              cli
 015E                   .dbline 137
 015E           ;  port_init();
 015E 50DF              rcall _port_init
 0160                   .dbline 138
 0160           ;  timer1_init();
 0160 58DF              rcall _timer1_init
 0162                   .dbline 140
 0162           ; 
 0162           ;  MCUCR = 0x00;
 0162 2224              clr R2
 0164 25BE              out 0x35,R2
 0166                   .dbline 141
 0166           ;  GICR  = 0x00;
 0166 2BBE              out 0x3b,R2
 0168                   .dbline 142
 0168           ;  TIMSK = 0x24; //timer interrupt sources
 0168 84E2              ldi R24,36
 016A 89BF              out 0x39,R24
 016C                   .dbline 143
 016C           ;  SEI(); //re-enable interrupts
 016C 7894              sei
 016E                   .dbline -2
 016E                   .dbline 145
 016E           ;  //all peripherals are now initialized
 016E           ; }
 016E           L34:
 016E                   .dbline 0 ; func end
 016E 0895              ret
 0170                   .dbend
 0170                   .dbfunc e main _main fV
                        .even
 0170           _main::
 0170                   .dbline -1
 0170                   .dbline 148
 0170           ; 
 0170           ; void main()
 0170           ; {
 0170                   .dbline 149
 0170           ;        init_devices();
 0170 F5DF              rcall _init_devices
 0172                   .dbline 150
 0172           ;        state = 0;
 0172 2224              clr R2
 0174 20920000          sts _state,R2
 0178                   .dbline 151
 0178           ;        ICP_value_down = 0;
 0178 3324              clr R3
 017A 30920200          sts _ICP_value_down+1,R3
 017E 20920100          sts _ICP_value_down,R2
 0182                   .dbline 152
 0182           ;        PORTD = 0x08;
 0182 88E0              ldi R24,8
 0184 82BB              out 0x12,R24
 0186                   .dbline 153
 0186           ;        PORTC = 0x08;
 0186 85BB              out 0x15,R24
 0188           L36:
 0188                   .dbline 155
 0188                   .dbline 156
 0188                   .dbline 157
 0188           L37:
 0188                   .dbline 154
 0188 FFCF              rjmp L36
 018A           X4:
 018A                   .dbline -2
 018A                   .dbline 158
 018A           ;        while(1)
 018A           ;        {
 018A           ;         ;
 018A           ;        }
 018A           ; }
 018A           L35:
 018A                   .dbline 0 ; func end
 018A 0895              ret
 018C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile D:\工作\video切换\soft\按键切换\test.c
 0000           _state::
 0000                   .blkb 1
 0001                   .dbsym e state _state c
 0001           _ICP_value_down::
 0001                   .blkb 2
 0003                   .dbsym e ICP_value_down _ICP_value_down i
 0003           _ICP_Flag::
 0003                   .blkb 1
 0004                   .dbsym e ICP_Flag _ICP_Flag c

⌨️ 快捷键说明

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