📄 motor_salve.lis
字号:
.module Motor_salve.c
.area text(rom, con, rel)
0000 .dbfile F:\IccAvr_Pro\Motor_salve.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 19
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; #include "qep.h"
0000 ; #include "SPI_slave.h"
0000 ; #include "pwm.h"
0000 ;
0000 ;
0000 ; extern unsigned char SPI_rx_buff[SPI_size];
0000 ; extern unsigned char SPI_tx_buff[SPI_size];
0000 ; extern unsigned char rx_index;
0000 ; extern unsigned char tx_index,SPI_tx_flag;
0000 ; extern int qep_cnt[QEP_size];
0000 ; extern unsigned char pwm_value[2];
0000 ; extern unsigned char pwm_flag;
0000 ;
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 20
0000 ; PORTA = 0xFF;
0000 8FEF ldi R24,255
0002 8BBB out 0x1b,R24
0004 .dbline 21
0004 ; DDRA = 0x00;
0004 2224 clr R2
0006 2ABA out 0x1a,R2
0008 .dbline 22
0008 ; PORTB = 0xFF;
0008 88BB out 0x18,R24
000A .dbline 23
000A ; DDRB = 0x00;
000A 27BA out 0x17,R2
000C .dbline 24
000C ; PORTC = 0x00;
000C 25BA out 0x15,R2
000E .dbline 25
000E ; DDRC = 0x00;
000E 24BA out 0x14,R2
0010 .dbline 26
0010 ; PORTD = 0x00;
0010 22BA out 0x12,R2
0012 .dbline 27
0012 ; DDRD = 0x30;
0012 80E3 ldi R24,48
0014 81BB out 0x11,R24
0016 .dbline -2
0016 L1:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e init_devices _init_devices fV
.even
0018 _init_devices::
0018 .dbline -1
0018 .dbline 32
0018 ; }
0018 ;
0018 ; //call this routine to initialize all peripherals
0018 ; void init_devices(void)
0018 ; {
0018 .dbline 34
0018 ; //stop errant interrupts until set up
0018 ; CLI(); //disable all interrupts
0018 F894 cli
001A .dbline 35
001A ; port_init();
001A F2DF xcall _port_init
001C .dbline 36
001C ; pwm_init();
001C 0E940000 xcall _pwm_init
0020 .dbline 37
0020 ; spi_init();
0020 0E940000 xcall _spi_init
0024 .dbline 39
0024 ;
0024 ; MCUCR = 0x0A;
0024 8AE0 ldi R24,10
0026 85BF out 0x35,R24
0028 .dbline 40
0028 ; GICR = 0xC0;
0028 80EC ldi R24,192
002A 8BBF out 0x3b,R24
002C .dbline 41
002C ; TIMSK = 0x00; //timer interrupt sources
002C 2224 clr R2
002E 29BE out 0x39,R2
0030 .dbline 42
0030 ; SEI(); //re-enable interrupts
0030 7894 sei
0032 .dbline -2
0032 L2:
0032 .dbline 0 ; func end
0032 0895 ret
0034 .dbend
0034 .dbfunc e main _main fV
.even
0034 _main::
0034 .dbline -1
0034 .dbline 46
0034 ; //all peripherals are now initialized
0034 ; }
0034 ; void main(void)
0034 ; {
0034 .dbline 47
0034 ; init_devices();
0034 F1DF xcall _init_devices
0036 09C0 xjmp L5
0038 L4:
0038 .dbline 50
0038 ;
0038 ; while(1)
0038 ; {
0038 .dbline 51
0038 ; if(pwm_flag)
0038 20900000 lds R2,_pwm_flag
003C 2220 tst R2
003E 29F0 breq L7
0040 .dbline 52
0040 ; {
0040 .dbline 53
0040 ; pwm_change();
0040 0E940000 xcall _pwm_change
0044 .dbline 54
0044 ; pwm_flag=0;
0044 2224 clr R2
0046 20920000 sts _pwm_flag,R2
004A .dbline 55
004A ; }
004A L7:
004A .dbline 57
004A L5:
004A .dbline 49
004A F6CF xjmp L4
004C X0:
004C .dbline -2
004C L3:
004C .dbline 0 ; func end
004C 0895 ret
004E .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -