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

📄 main.lis

📁 手操器
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00A4           ;       
 00A4           ;        
 00A4           ;       SysP5msTimer++;
 00A4 80910100          lds R24,_SysP5msTimer
 00A8 8F5F              subi R24,255    ; addi 1
 00AA 80930100          sts _SysP5msTimer,R24
 00AE                   .dbline 83
 00AE           ; 
 00AE           ;       if(SysP5msTimer==10)
 00AE 8A30              cpi R24,10
 00B0 29F4              brne L14
 00B2           X2:
 00B2                   .dbline 84
 00B2           ;       {
 00B2                   .dbline 85
 00B2           ;               SysP5msTimer=0;
 00B2 2224              clr R2
 00B4 20920100          sts _SysP5msTimer,R2
 00B8                   .dbline 86
 00B8           ;               TaskState[SYS_TIMER_TASK]=TASK_READY;   //SYS_TIMER_TASK为2
 00B8 20920D00          sts _TaskState+2,R2
 00BC                   .dbline 88
 00BC           ; 
 00BC           ;       }  
 00BC           L14:
 00BC                   .dbline 89
 00BC           ;       TCNT0 = 0x83; //reload counter value 
 00BC 83E8              ldi R24,131
 00BE 82BF              out 0x32,R24
 00C0                   .dbline -2
 00C0           L9:
 00C0                   .dbline 0 ; func end
 00C0 2990              ld R2,y+
 00C2 2FBE              OUT 63,R2
 00C4 F991              ld R31,y+
 00C6 E991              ld R30,y+
 00C8 9991              ld R25,y+
 00CA 8991              ld R24,y+
 00CC 1991              ld R17,y+
 00CE 0991              ld R16,y+
 00D0 2990              ld R2,y+
 00D2 1895              reti
 00D4                   .dbend
                        .area vector(rom, abs)
                        .org 32
 0020 0C946A00          jmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 00D4                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\main.c
 00D4                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 00D4           _timer1_ovf_isr::
 00D4 2A92              st -y,R2
 00D6 3A92              st -y,R3
 00D8 2FB6              IN R2,63
 00DA 2A92              st -y,R2
 00DC                   .dbline -1
 00DC                   .dbline 96
 00DC           ; 
 00DC           ; }
 00DC           ; 
 00DC           ; 
 00DC           ; #pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
 00DC           ; void timer1_ovf_isr(void)
 00DC           ; {
 00DC                   .dbline 98
 00DC           ;  //TIMER1 has overflowed
 00DC           ;   OCR1B=CurrentOut;
 00DC 20900F00          lds R2,_CurrentOut
 00E0 30901000          lds R3,_CurrentOut+1
 00E4 39BC              out 0x29,R3
 00E6 28BC              out 0x28,R2
 00E8                   .dbline -2
 00E8           L17:
 00E8                   .dbline 0 ; func end
 00E8 2990              ld R2,y+
 00EA 2FBE              OUT 63,R2
 00EC 3990              ld R3,y+
 00EE 2990              ld R2,y+
 00F0 1895              reti
 00F2                   .dbend
 00F2                   .dbfunc e timer1_init _timer1_init fV
                        .even
 00F2           _timer1_init::
 00F2                   .dbline -1
 00F2                   .dbline 106
 00F2           ; }
 00F2           ; 
 00F2           ; //TIMER1 initialize - prescale:1
 00F2           ; // WGM: 14) PWM fast, TOP=ICRn
 00F2           ; // desired value: 8.192mSec
 00F2           ; // actual value:  8.192mSec (0.0%)
 00F2           ; void timer1_init(void)
 00F2           ; {
 00F2                   .dbline 107
 00F2           ;  TCCR1B = 0x00; //stop
 00F2 2224              clr R2
 00F4 2EBC              out 0x2e,R2
 00F6                   .dbline 108
 00F6           ;  TCNT1H = 0x00; //setup
 00F6 2DBC              out 0x2d,R2
 00F8                   .dbline 109
 00F8           ;  TCNT1L = 0x01;
 00F8 81E0              ldi R24,1
 00FA 8CBD              out 0x2c,R24
 00FC                   .dbline 110
 00FC           ;  OCR1AH = 0xFF;
 00FC 8FEF              ldi R24,255
 00FE 8BBD              out 0x2b,R24
 0100                   .dbline 111
 0100           ;  OCR1AL = 0xFF;
 0100 8ABD              out 0x2a,R24
 0102                   .dbline 112
 0102           ;  OCR1BH = 0x3F;
 0102 8FE3              ldi R24,63
 0104 89BD              out 0x29,R24
 0106                   .dbline 113
 0106           ;  OCR1BL = 0xFF;
 0106 8FEF              ldi R24,255
 0108 88BD              out 0x28,R24
 010A                   .dbline 114
 010A           ;  ICR1H  = 0xFF;
 010A 87BD              out 0x27,R24
 010C                   .dbline 115
 010C           ;  ICR1L  = 0xFF;
 010C 86BD              out 0x26,R24
 010E                   .dbline 116
 010E           ;  TCCR1A = 0x33;
 010E 83E3              ldi R24,51
 0110 8FBD              out 0x2f,R24
 0112                   .dbline 117
 0112           ;  TCCR1B = 0x19; //start Timer
 0112 89E1              ldi R24,25
 0114 8EBD              out 0x2e,R24
 0116                   .dbline -2
 0116           L18:
 0116                   .dbline 0 ; func end
 0116 0895              ret
 0118                   .dbend
 0118                   .dbfunc e init_devices _init_devices fV
                        .even
 0118           _init_devices::
 0118                   .dbline -1
 0118                   .dbline 124
 0118           ; }
 0118           ; 
 0118           ; 
 0118           ; 
 0118           ; //call this routine to initialize all peripherals
 0118           ; void init_devices(void)
 0118           ; {
 0118                   .dbline 126
 0118           ;  //stop errant interrupts until set up
 0118           ;  CLI(); //disable all interrupts
 0118 F894              cli
 011A                   .dbline 127
 011A           ;  port_init();
 011A 72DF              xcall _port_init
 011C                   .dbline 128
 011C           ;  watchdog_init();
 011C 87DF              xcall _watchdog_init
 011E                   .dbline 129
 011E           ;  timer0_init();
 011E 8DDF              xcall _timer0_init
 0120                   .dbline 130
 0120           ;  timer1_init();
 0120 E8DF              xcall _timer1_init
 0122                   .dbline 131
 0122           ;  adc_init();
 0122 7BDF              xcall _adc_init
 0124                   .dbline 133
 0124           ;  
 0124           ;  MCUCR = 0x00;
 0124 2224              clr R2
 0126 25BE              out 0x35,R2
 0128                   .dbline 134
 0128           ;  GICR  = 0x00;
 0128 2BBE              out 0x3b,R2
 012A                   .dbline 135
 012A           ;  TIMSK = 0x05; //timer interrupt sources
 012A 85E0              ldi R24,5
 012C 89BF              out 0x39,R24
 012E                   .dbline 136
 012E           ;  SEI(); //re-enable interrupts
 012E 7894              sei
 0130                   .dbline -2
 0130           L19:
 0130                   .dbline 0 ; func end
 0130 0895              ret
 0132                   .dbend
 0132                   .dbfunc e main _main fV
                        .even
 0132           _main::
 0132                   .dbline -1
 0132                   .dbline 140
 0132           ;  //all peripherals are now initialized
 0132           ; }
 0132           ; void main(void)
 0132           ; {
 0132                   .dbline 142
 0132           ; 
 0132           ;        init_devices();
 0132 F2DF              xcall _init_devices
 0134                   .dbline 143
 0134           ;        TaskInit();
 0134 0E940000          xcall _TaskInit
 0138                   .dbline 144
 0138           ;      TaskRun();
 0138                   .dbline -2
 0138           L20:
 0138                   .dbline 0 ; func end
 0138 0C940000          xjmp _TaskRun
 013C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\手操器\main.c
 0000           _disp_flag::
 0000                   .blkb 1
 0001                   .dbsym e disp_flag _disp_flag c
 0001           _SysP5msTimer::
 0001                   .blkb 1
 0002                   .dbsym e SysP5msTimer _SysP5msTimer c
 0002           _DisBuffer::
 0002                   .blkb 8
 000A                   .dbsym e DisBuffer _DisBuffer A[8:8]c
 000A           _LedBit::
 000A                   .blkb 1
 000B                   .dbsym e LedBit _LedBit c
 000B           _TaskState::
 000B                   .blkb 4
 000F                   .dbsym e TaskState _TaskState A[4:4]c
 000F           _CurrentOut::
 000F                   .blkb 2
 0011                   .dbsym e CurrentOut _CurrentOut i
 0011           ;        
 0011           ; }
 0011           ; 
 0011           ; 

⌨️ 快捷键说明

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