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

📄 m128_my.lis

📁 ewts avr驱动程序 角速度传感器 104为秒
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module m128_my.c
                        .area data(ram, con, rel)
 0000           _v::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
 0002                   .dbsym e v _v I
 0002           _time::
 0002                   .blkb 2
                        .area idata
 0002 0000              .word 0
                        .area data(ram, con, rel)
 0004                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
 0004                   .dbsym e time _time i
                        .area text(rom, con, rel)
 0000                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 11
 0000           ; //ICC-AVR application builder : 2007-2-21 下午 09:30:23
 0000           ; // Target : M128
 0000           ; // Crystal: 8.0000Mhz
 0000           ; 
 0000           ; #include <iom128v.h>
 0000           ; #include <macros.h>
 0000           ; int v=0;
 0000           ; unsigned int time=0;
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline -2
 0000           L1:
 0000                   .dbline 0 ; func end
 0000 0895              ret
 0002                   .dbend
 0002                   .dbfunc e adc_init _adc_init fV
                        .even
 0002           _adc_init::
 0002                   .dbline -1
 0002                   .dbline 18
 0002           ; 
 0002           ; }
 0002           ; 
 0002           ; //ADC initialize
 0002           ; // Conversion time: 3uS
 0002           ; void adc_init(void)
 0002           ; {
 0002                   .dbline 19
 0002           ;  ADCSRA = 0x00; //disable adc
 0002 2224              clr R2
 0004 26B8              out 0x6,R2
 0006                   .dbline 20
 0006           ;  ADMUX = 0x00; //select adc input 0
 0006 27B8              out 0x7,R2
 0008                   .dbline 21
 0008           ;  ACSR  = 0x80;
 0008 80E8              ldi R24,128
 000A 88B9              out 0x8,R24
 000C                   .dbline 22
 000C           ;  ADCSRA = 0xE9;
 000C 89EE              ldi R24,233
 000E 86B9              out 0x6,R24
 0010                   .dbline -2
 0010           L2:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbend
                        .area vector(rom, abs)
                        .org 84
 0054 0C940900          jmp _adc_isr
                        .area text(rom, con, rel)
 0012                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
 0012                   .dbfunc e adc_isr _adc_isr fV
                        .even
 0012           _adc_isr::
 0012 2A92              st -y,R2
 0014 3A92              st -y,R3
 0016 4A92              st -y,R4
 0018 5A92              st -y,R5
 001A 2FB6              in R2,0x3f
 001C 2A92              st -y,R2
 001E                   .dbline -1
 001E                   .dbline 27
 001E           ; }
 001E           ; 
 001E           ; #pragma interrupt_handler adc_isr:22
 001E           ; void adc_isr(void)
 001E           ; {
 001E                   .dbline 29
 001E           ;  //conversion complete, read value (int) using...
 001E           ;  v=ADCL;            //Read 8 low bits first (important)
 001E 24B0              in R2,0x4
 0020 3324              clr R3
 0022 30920100          sts _v+1,R3
 0026 20920000          sts _v,R2
 002A                   .dbline 30
 002A           ;  v|=(int)ADCH << 8; //read 2 high bits and shift into top byte
 002A 25B0              in R2,0x5
 002C 3324              clr R3
 002E 322C              mov R3,R2
 0030 2224              clr R2
 0032 40900000          lds R4,_v
 0036 50900100          lds R5,_v+1
 003A 4228              or R4,R2
 003C 5328              or R5,R3
 003E 50920100          sts _v+1,R5
 0042 40920000          sts _v,R4
 0046                   .dbline -2
 0046           L3:
 0046 2990              ld R2,y+
 0048 2FBE              out 0x3f,R2
 004A 5990              ld R5,y+
 004C 4990              ld R4,y+
 004E 3990              ld R3,y+
 0050 2990              ld R2,y+
 0052                   .dbline 0 ; func end
 0052 1895              reti
 0054                   .dbend
 0054                   .dbfunc e init_devices _init_devices fV
                        .even
 0054           _init_devices::
 0054                   .dbline -1
 0054                   .dbline 37
 0054           ;  
 0054           ;  
 0054           ; }
 0054           ; 
 0054           ; //call this routine to initialize all peripherals
 0054           ; void init_devices(void)
 0054           ; {
 0054                   .dbline 39
 0054           ;  //stop errant interrupts until set up
 0054           ;  CLI(); //disable all interrupts
 0054 F894              cli
 0056                   .dbline 40
 0056           ;  XDIV  = 0x00; //xtal divider
 0056 2224              clr R2
 0058 2CBE              out 0x3c,R2
 005A                   .dbline 41
 005A           ;  XMCRA = 0x00; //external memory
 005A 20926D00          sts 109,R2
 005E                   .dbline 42
 005E           ;  port_init();
 005E D0DF              xcall _port_init
 0060                   .dbline 43
 0060           ;  adc_init();
 0060 D0DF              xcall _adc_init
 0062                   .dbline 44
 0062           ; timer0_init();
 0062 0ED0              xcall _timer0_init
 0064                   .dbline 46
 0064           ; 
 0064           ;  MCUCR = 0x00;
 0064 2224              clr R2
 0066 25BE              out 0x35,R2
 0068                   .dbline 47
 0068           ;  EICRA = 0x0A; //extended ext ints
 0068 8AE0              ldi R24,10
 006A 80936A00          sts 106,R24
 006E                   .dbline 48
 006E           ;  EICRB = 0x00; //extended ext ints
 006E 2ABE              out 0x3a,R2
 0070                   .dbline 49
 0070           ;  EIMSK = 0x03;
 0070 83E0              ldi R24,3
 0072 89BF              out 0x39,R24
 0074                   .dbline 50
 0074           ;  TIMSK = 0x01; //timer interrupt sources
 0074 81E0              ldi R24,1
 0076 87BF              out 0x37,R24
 0078                   .dbline 51
 0078           ;  ETIMSK = 0x00; //extended timer interrupt sources
 0078 20927D00          sts 125,R2
 007C                   .dbline 52
 007C           ;  SEI(); //re-enable interrupts
 007C 7894              sei
 007E                   .dbline -2
 007E           L4:
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbend
 0080                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0080           _timer0_init::
 0080                   .dbline -1
 0080                   .dbline 63
 0080           ;  //all peripherals are now initialized
 0080           ; }
 0080           ; 
 0080           ; 
 0080           ; 
 0080           ; //TIMER0 initialize - prescale:64
 0080           ; // WGM: Normal
 0080           ; // desired value: 1mSec
 0080           ; // actual value:  1.000mSec (0.0%)
 0080           ; void timer0_init(void)
 0080           ; {
 0080                   .dbline 64
 0080           ;  TCCR0 = 0x00; //stop
 0080 2224              clr R2
 0082 23BE              out 0x33,R2
 0084                   .dbline 65
 0084           ;  ASSR  = 0x00; //set async mode
 0084 20BE              out 0x30,R2
 0086                   .dbline 66
 0086           ;  TCNT0 = 0x83; //set count
 0086 83E8              ldi R24,131
 0088 82BF              out 0x32,R24
 008A                   .dbline 67
 008A           ;  OCR0  = 0x7D;
 008A 8DE7              ldi R24,125
 008C 81BF              out 0x31,R24
 008E                   .dbline 68
 008E           ;  TCCR0 = 0x04; //start timer
 008E 84E0              ldi R24,4
 0090 83BF              out 0x33,R24
 0092                   .dbline -2
 0092           L5:
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbend
                        .area vector(rom, abs)
                        .org 64
 0040 0C944A00          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 0094                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
 0094                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 0094           _timer0_ovf_isr::
 0094 8A93              st -y,R24
 0096 9A93              st -y,R25
 0098 8FB7              in R24,0x3f
 009A 8A93              st -y,R24
 009C                   .dbline -1
 009C                   .dbline 73
 009C           ; }
 009C           ; 
 009C           ; #pragma interrupt_handler timer0_ovf_isr:17
 009C           ; void timer0_ovf_isr(void)
 009C           ; {
 009C                   .dbline 74
 009C           ;  TCNT0 = 0x83; //reload counter value
 009C 83E8              ldi R24,131
 009E 82BF              out 0x32,R24
 00A0                   .dbline 75
 00A0           ;  time++;
 00A0 80910200          lds R24,_time
 00A4 90910300          lds R25,_time+1
 00A8 0196              adiw R24,1
 00AA 90930300          sts _time+1,R25
 00AE 80930200          sts _time,R24
 00B2                   .dbline -2
 00B2           L6:
 00B2 8991              ld R24,y+
 00B4 8FBF              out 0x3f,R24
 00B6 9991              ld R25,y+
 00B8 8991              ld R24,y+
 00BA                   .dbline 0 ; func end
 00BA 1895              reti
 00BC                   .dbend
                        .area vector(rom, abs)
                        .org 4
 0004 0C945E00          jmp _int0_isr
                        .area text(rom, con, rel)
 00BC                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
 00BC                   .dbfunc e int0_isr _int0_isr fV
                        .even
 00BC           _int0_isr::
 00BC 2A92              st -y,R2
 00BE 8A93              st -y,R24
 00C0 2FB6              in R2,0x3f
 00C2 2A92              st -y,R2
 00C4                   .dbline -1
 00C4                   .dbline 79
 00C4           ; }
 00C4           ; #pragma interrupt_handler int0_isr:2
 00C4           ; void int0_isr(void)
 00C4           ; {
 00C4                   .dbline 81
 00C4           ;  //external interupt on INT0
 00C4           ;  EIMSK = 0x00;
 00C4 2224              clr R2
 00C6 29BE              out 0x39,R2
 00C8                   .dbline 82
 00C8           ;  PORTB=0xfe;
 00C8 8EEF              ldi R24,254
 00CA 88BB              out 0x18,R24
 00CC                   .dbline -2
 00CC           L7:
 00CC 2990              ld R2,y+
 00CE 2FBE              out 0x3f,R2
 00D0 8991              ld R24,y+
 00D2 2990              ld R2,y+
 00D4                   .dbline 0 ; func end
 00D4 1895              reti
 00D6                   .dbend
                        .area vector(rom, abs)
                        .org 8
 0008 0C946B00          jmp _int1_isr
                        .area text(rom, con, rel)
 00D6                   .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\a___EWTS82\m128_my.c
 00D6                   .dbfunc e int1_isr _int1_isr fV
                        .even
 00D6           _int1_isr::
 00D6 2A92              st -y,R2
 00D8 8A93              st -y,R24
 00DA 2FB6              in R2,0x3f
 00DC 2A92              st -y,R2
 00DE                   .dbline -1
 00DE                   .dbline 87
 00DE           ; }
 00DE           ; 
 00DE           ; #pragma interrupt_handler int1_isr:3
 00DE           ; void int1_isr(void)
 00DE           ; {
 00DE                   .dbline 89
 00DE           ;  //external interupt on INT1
 00DE           ;   EIMSK = 0x00;
 00DE 2224              clr R2
 00E0 29BE              out 0x39,R2
 00E2                   .dbline 90
 00E2           ;   PORTB=0xfd;
 00E2 8DEF              ldi R24,253
 00E4 88BB              out 0x18,R24
 00E6                   .dbline -2
 00E6           L8:
 00E6 2990              ld R2,y+
 00E8 2FBE              out 0x3f,R2
 00EA 8991              ld R24,y+
 00EC 2990              ld R2,y+
 00EE                   .dbline 0 ; func end
 00EE 1895              reti
 00F0                   .dbend
 00F0                   .dbfunc e asc_tran1 _asc_tran1 fV
 00F0           ;          asc_p -> y+4
 00F0           ;              y -> R20
 00F0           ;              x -> R22

⌨️ 快捷键说明

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