📄 motor_master.lis
字号:
00D0 .dbline 97
00D0 ; qep_data1[j++]=c;
00D0 1C01 movw R2,R24
00D2 0196 adiw R24,1
00D4 9983 std y+1,R25
00D6 8883 std y+0,R24
00D8 80E0 ldi R24,<_qep_data1
00DA 90E0 ldi R25,>_qep_data1
00DC F101 movw R30,R2
00DE E80F add R30,R24
00E0 F91F adc R31,R25
00E2 E082 std z+0,R14
00E4 L18:
00E4 .dbline 98
00E4 L13:
00E4 .dbline 91
00E4 0A80 ldd R0,y+2
00E6 0394 inc R0
00E8 0A82 std y+2,R0
00EA L15:
00EA .dbline 91
00EA 8A81 ldd R24,y+2
00EC 8A30 cpi R24,10
00EE 20F4 brsh L20
00F0 81E0 ldi R24,1
00F2 90E0 ldi R25,0
00F4 6C01 movw R12,R24
00F6 02C0 xjmp L21
00F8 L20:
00F8 CC24 clr R12
00FA DD24 clr R13
00FC L21:
00FC 8881 ldd R24,y+0
00FE 9981 ldd R25,y+1
0100 8330 cpi R24,3
0102 E0E0 ldi R30,0
0104 9E07 cpc R25,R30
0106 1CF4 brge L22
0108 61E0 ldi R22,1
010A 70E0 ldi R23,0
010C 02C0 xjmp L23
010E L22:
010E 6627 clr R22
0110 7727 clr R23
0112 L23:
0112 1601 movw R2,R12
0114 2622 and R2,R22
0116 3722 and R3,R23
0118 2220 tst R2
011A 09F0 breq X5
011C C7CF xjmp L12
011E X5:
011E 3320 tst R3
0120 09F0 breq X6
0122 C4CF xjmp L12
0124 X6:
0124 X1:
0124 .dbline 99
0124 ; }
0124 ; getSPIchar();
0124 0E940000 xcall _getSPIchar
0128 .dbline 101
0128 ;
0128 ; putSPIchar(0x00);
0128 0027 clr R16
012A 0E940000 xcall _putSPIchar
012E .dbline 102
012E ; getSPIchar();
012E 0E940000 xcall _getSPIchar
0132 .dbline 104
0132 ;
0132 ; NOP();
0132 0000 nop
0134 .dbline 105
0134 ; putSPIchar(0xaa);
0134 0AEA ldi R16,170
0136 0E940000 xcall _putSPIchar
013A .dbline 106
013A ; getSPIchar();
013A 0E940000 xcall _getSPIchar
013E .dbline 107
013E ; putSPIchar(0x02);
013E 02E0 ldi R16,2
0140 0E940000 xcall _putSPIchar
0144 .dbline 108
0144 ; getSPIchar();
0144 0E940000 xcall _getSPIchar
0148 .dbline 109
0148 ; putSPIchar(0x00);
0148 0027 clr R16
014A 0E940000 xcall _putSPIchar
014E .dbline 110
014E ; for(i=0,j=-1;i<10&j<3;i++)
014E 0024 clr R0
0150 0A82 std y+2,R0
0152 8FEF ldi R24,-1
0154 9FEF ldi R25,-1
0156 9983 std y+1,R25
0158 8883 std y+0,R24
015A 1FC0 xjmp L27
015C L24:
015C .dbline 111
015C ; {
015C .dbline 112
015C ; if((c=getSPIchar())==0x56)
015C 0E940000 xcall _getSPIchar
0160 E02E mov R14,R16
0162 0635 cpi R16,86
0164 21F4 brne L28
0166 .dbline 113
0166 ; j=0;
0166 0024 clr R0
0168 1124 clr R1
016A 1982 std y+1,R1
016C 0882 std y+0,R0
016E L28:
016E .dbline 114
016E ; putSPIchar(0x44);
016E 04E4 ldi R16,68
0170 0E940000 xcall _putSPIchar
0174 .dbline 115
0174 ; if(j>=0)
0174 8881 ldd R24,y+0
0176 9981 ldd R25,y+1
0178 8030 cpi R24,0
017A E0E0 ldi R30,0
017C 9E07 cpc R25,R30
017E 54F0 brlt L30
0180 .dbline 116
0180 ; qep_data2[j++]=c;
0180 1C01 movw R2,R24
0182 0196 adiw R24,1
0184 9983 std y+1,R25
0186 8883 std y+0,R24
0188 80E0 ldi R24,<_qep_data2
018A 90E0 ldi R25,>_qep_data2
018C F101 movw R30,R2
018E E80F add R30,R24
0190 F91F adc R31,R25
0192 E082 std z+0,R14
0194 L30:
0194 .dbline 117
0194 L25:
0194 .dbline 110
0194 0A80 ldd R0,y+2
0196 0394 inc R0
0198 0A82 std y+2,R0
019A L27:
019A .dbline 110
019A 8A81 ldd R24,y+2
019C 8A30 cpi R24,10
019E 18F4 brsh L32
01A0 61E0 ldi R22,1
01A2 70E0 ldi R23,0
01A4 02C0 xjmp L33
01A6 L32:
01A6 6627 clr R22
01A8 7727 clr R23
01AA L33:
01AA 8881 ldd R24,y+0
01AC 9981 ldd R25,y+1
01AE 8330 cpi R24,3
01B0 E0E0 ldi R30,0
01B2 9E07 cpc R25,R30
01B4 24F4 brge L34
01B6 81E0 ldi R24,1
01B8 90E0 ldi R25,0
01BA 6C01 movw R12,R24
01BC 02C0 xjmp L35
01BE L34:
01BE CC24 clr R12
01C0 DD24 clr R13
01C2 L35:
01C2 1B01 movw R2,R22
01C4 2C20 and R2,R12
01C6 3D20 and R3,R13
01C8 2220 tst R2
01CA 09F0 breq X7
01CC C7CF xjmp L24
01CE X7:
01CE 3320 tst R3
01D0 09F0 breq X8
01D2 C4CF xjmp L24
01D4 X8:
01D4 X2:
01D4 .dbline 118
01D4 ; }
01D4 ; getSPIchar();
01D4 0E940000 xcall _getSPIchar
01D8 .dbline 119
01D8 ; NOP();
01D8 0000 nop
01DA .dbline 120
01DA ; PORTB|=BIT(SS);
01DA C49A sbi 0x18,4
01DC .dbline 121
01DC ; NOP();
01DC 0000 nop
01DE .dbline 122
01DE ; }
01DE L10:
01DE .dbline 123
01DE ; if(set_pwm)
01DE AA20 tst R10
01E0 C1F0 breq L36
01E2 .dbline 124
01E2 ; {
01E2 .dbline 125
01E2 ; PORTB&=~BIT(SS);
01E2 C498 cbi 0x18,4
01E4 .dbline 126
01E4 ; putSPIchar(0x55);
01E4 05E5 ldi R16,85
01E6 0E940000 xcall _putSPIchar
01EA .dbline 127
01EA ; getSPIchar();
01EA 0E940000 xcall _getSPIchar
01EE .dbline 128
01EE ; putSPIchar(pwm[0]);
01EE 00910000 lds R16,_pwm
01F2 0E940000 xcall _putSPIchar
01F6 .dbline 129
01F6 ; getSPIchar();
01F6 0E940000 xcall _getSPIchar
01FA .dbline 130
01FA ; putSPIchar(pwm[1]);
01FA 00910100 lds R16,_pwm+1
01FE 0E940000 xcall _putSPIchar
0202 .dbline 131
0202 ; getSPIchar();
0202 0E940000 xcall _getSPIchar
0206 .dbline 132
0206 ; putSPIchar(0x00);
0206 0027 clr R16
0208 0E940000 xcall _putSPIchar
020C .dbline 133
020C ; getSPIchar();
020C 0E940000 xcall _getSPIchar
0210 .dbline 134
0210 ; PORTB|=BIT(SS);
0210 C49A sbi 0x18,4
0212 .dbline 135
0212 ; }
0212 L36:
0212 .dbline 136
0212 L8:
0212 .dbline 80
0212 20900000 lds R2,_timeflag
0216 2220 tst R2
0218 09F0 breq X9
021A 2DCF xjmp L7
021C X9:
021C .dbline 137
021C L5:
021C .dbline 78
021C FACF xjmp L8
021E X3:
021E .dbline -2
021E L3:
021E 2396 adiw R28,3
0220 .dbline 0 ; func end
0220 0895 ret
0222 .dbsym r t 20 c
0222 .dbsym r set_pwm 10 c
0222 .dbsym r SPI_flag 20 c
0222 .dbsym r c 14 c
0222 .dbsym l i 2 c
0222 .dbsym l j 0 I
0222 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\IccAvr_Pro\Motor_master.c
0000 _qep_data2::
0000 .blkb 3
0003 .dbsym e qep_data2 _qep_data2 A[3:3]c
0003 _qep_data1::
0003 .blkb 3
0006 .dbsym e qep_data1 _qep_data1 A[3:3]c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -