📄 ir.lst
字号:
1 .file "IR.c"
2 .arch attiny13
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
76 .global IR_Time_detect
78 IR_Time_detect:
1:IR.c **** /******************************************************************************
2:IR.c **** * Compiler: WinAVR(GCC)
3:IR.c **** * Device: ATtiny13
4:IR.c **** * File name: IR.c
5:IR.c **** * Description: IR
6:IR.c ****
7:IR.c **** * Programmer: Liansen.Wang
8:IR.c **** * Revision: 1.0
9:IR.c **** * Modification Time: 2005-08-22 14:43
10:IR.c ****
11:IR.c **** ******************************************************************************/
12:IR.c **** #include "IR.h"
13:IR.c ****
14:IR.c **** /*===========================================================
15:IR.c ****
16:IR.c ****
17:IR.c ****
18:IR.c **** ===========================================================*/
19:IR.c **** unsigned char IR_Time_detect(unsigned int time1,unsigned int time2)
20:IR.c **** {
80 .LM1:
81 /* prologue: frame size=0 */
82 /* prologue end (size=0) */
83 0000 F92F mov r31,r25
84 0002 E82F mov r30,r24
21:IR.c **** unsigned int i=0;
86 .LM2:
87 0004 40E0 ldi r20,lo8(0)
88 0006 50E0 ldi r21,hi8(0)
22:IR.c **** unsigned char j=0;
90 .LM3:
91 0008 A0E0 ldi r26,lo8(0)
23:IR.c **** while((PINB & (1<<IR))>=j)
24:IR.c **** {
25:IR.c **** i++;
26:IR.c **** if((PINB & (1<<IR))!=0) {j=1;}
27:IR.c **** if(i>time2) {return 0xFF;}
93 .LM4:
94 000a 86B3 in r24,54-0x20
95 .L6:
97 .LM5:
98 000c 4F5F subi r20,lo8(-(1))
99 000e 5F4F sbci r21,hi8(-(1))
101 .LM6:
102 0010 B399 sbic 54-0x20,3
103 0012 A1E0 ldi r26,lo8(1)
104 .L4:
106 .LM7:
107 0014 6417 cp r22,r20
108 0016 7507 cpc r23,r21
109 0018 78F0 brlo .L11
110 001a 86B3 in r24,54-0x20
111 001c 9927 clr r25
112 001e 8870 andi r24,lo8(8)
113 0020 9070 andi r25,hi8(8)
114 0022 2A2F mov r18,r26
115 0024 3327 clr r19
116 0026 8217 cp r24,r18
117 0028 9307 cpc r25,r19
118 002a 84F7 brge .L6
28:IR.c **** }
29:IR.c **** if(i>time1){return 1;}
120 .LM8:
121 002c E417 cp r30,r20
122 002e F507 cpc r31,r21
123 0030 30F4 brsh .L7
124 0032 81E0 ldi r24,lo8(1)
125 0034 90E0 ldi r25,hi8(1)
126 0036 0895 ret
127 .L11:
129 .LM9:
130 0038 8FEF ldi r24,lo8(255)
131 003a 90E0 ldi r25,hi8(255)
132 003c 0895 ret
133 .L7:
30:IR.c **** else {return 0;}
135 .LM10:
136 003e 80E0 ldi r24,lo8(0)
137 0040 90E0 ldi r25,hi8(0)
31:IR.c **** }
139 .LM11:
140 0042 0895 ret
141 /* epilogue: frame size=0 */
142 0044 0895 ret
143 /* epilogue end (size=1) */
144 /* function IR_Time_detect size 36 (35) */
150 .Lscope0:
152 .global IR_Value_Read
154 IR_Value_Read:
32:IR.c **** /*===========================================================
33:IR.c ****
34:IR.c ****
35:IR.c **** ============================================================*/
36:IR.c **** unsigned char IR_Value_Read(void)
37:IR.c **** {
156 .LM12:
157 /* prologue: frame size=4 */
158 0046 EF92 push r14
159 0048 FF92 push r15
160 004a 0F93 push r16
161 004c 1F93 push r17
162 004e CF93 push r28
163 0050 DF93 push r29
164 0052 CDB7 in r28,__SP_L__
165 0054 DEB7 in r29,__SP_H__
166 0056 2497 sbiw r28,4
167 0058 0FB6 in __tmp_reg__,__SREG__
168 005a F894 cli
169 005c DEBF out __SP_H__,r29
170 005e 0FBE out __SREG__,__tmp_reg__
171 0060 CDBF out __SP_L__,r28
172 /* prologue end (size=14) */
38:IR.c **** unsigned char i,j,k;
39:IR.c **** unsigned char IR_Value_time[4];
40:IR.c ****
41:IR.c **** if (IR_Time_detect(2400,3360)!=1)
174 .LM13:
175 0062 60E2 ldi r22,lo8(3360)
176 0064 7DE0 ldi r23,hi8(3360)
177 0066 80E6 ldi r24,lo8(2400)
178 0068 99E0 ldi r25,hi8(2400)
179 006a CADF rcall IR_Time_detect
180 006c 8130 cpi r24,lo8(1)
181 006e 51F5 brne .L30
42:IR.c **** {
43:IR.c **** GIFR|=(1<<PCIF);
44:IR.c **** return 0xFF;
45:IR.c **** }
46:IR.c ****
47:IR.c **** for(i=0;i<4;i++)
183 .LM14:
184 0070 FF24 clr r15
185 .L23:
48:IR.c **** {
49:IR.c **** for(j=0;j<8;j++)
187 .LM15:
188 0072 EE24 clr r14
189 .L22:
50:IR.c **** {
51:IR.c **** IR_Value_time[i]>>=1;
191 .LM16:
192 0074 0C2F mov r16,r28
193 0076 1D2F mov r17,r29
194 0078 0F5F subi r16,lo8(-(1))
195 007a 1F4F sbci r17,hi8(-(1))
196 007c 0F0D add r16,r15
197 007e 111D adc r17,__zero_reg__
198 0080 F12F mov r31,r17
199 0082 E02F mov r30,r16
200 0084 8081 ld r24,Z
201 0086 8695 lsr r24
202 0088 8083 st Z,r24
52:IR.c **** k=IR_Time_detect(800,1440);
204 .LM17:
205 008a 60EA ldi r22,lo8(1440)
206 008c 75E0 ldi r23,hi8(1440)
207 008e 80E2 ldi r24,lo8(800)
208 0090 93E0 ldi r25,hi8(800)
209 0092 B6DF rcall IR_Time_detect
53:IR.c **** if(k==0xFF)
211 .LM18:
212 0094 8F3F cpi r24,lo8(-1)
213 0096 B1F0 breq .L30
54:IR.c **** {
55:IR.c **** GIFR|=(1<<PCIF);
56:IR.c **** return 0xFF;
57:IR.c **** }
58:IR.c **** if(k==1)
215 .LM19:
216 0098 8130 cpi r24,lo8(1)
217 009a 29F4 brne .L19
59:IR.c **** {
60:IR.c **** IR_Value_time[i]|=0x80;
219 .LM20:
220 009c F12F mov r31,r17
221 009e E02F mov r30,r16
222 00a0 8081 ld r24,Z
223 00a2 8068 ori r24,lo8(-128)
224 00a4 8083 st Z,r24
225 .L19:
227 .LM21:
228 00a6 E394 inc r14
229 00a8 F7E0 ldi r31,lo8(7)
230 00aa FE15 cp r31,r14
231 00ac 18F7 brsh .L22
233 .LM22:
234 00ae F394 inc r15
235 00b0 83E0 ldi r24,lo8(3)
236 00b2 8F15 cp r24,r15
237 00b4 F0F6 brsh .L23
61:IR.c **** }
62:IR.c **** }
63:IR.c **** }
64:IR.c ****
65:IR.c **** if((IR_Value_time[2] & IR_Value_time[3])==0)
239 .LM23:
240 00b6 9B81 ldd r25,Y+3
241 00b8 8C81 ldd r24,Y+4
242 00ba 8923 and r24,r25
243 00bc 31F4 brne .L24
66:IR.c **** return IR_Value_time[2];
245 .LM24:
246 00be 892F mov r24,r25
247 00c0 9927 clr r25
248 00c2 05C0 rjmp .L12
249 .L30:
251 .LM25:
252 00c4 8AB7 in r24,90-0x20
253 00c6 8062 ori r24,lo8(32)
254 00c8 8ABF out 90-0x20,r24
255 .L24:
67:IR.c **** else
68:IR.c **** return 0xFF;
257 .LM26:
258 00ca 8FEF ldi r24,lo8(255)
259 00cc 90E0 ldi r25,hi8(255)
260 .L12:
261 /* epilogue: frame size=4 */
262 00ce 2496 adiw r28,4
263 00d0 0FB6 in __tmp_reg__,__SREG__
264 00d2 F894 cli
265 00d4 DEBF out __SP_H__,r29
266 00d6 0FBE out __SREG__,__tmp_reg__
267 00d8 CDBF out __SP_L__,r28
268 00da DF91 pop r29
269 00dc CF91 pop r28
270 00de 1F91 pop r17
271 00e0 0F91 pop r16
272 00e2 FF90 pop r15
273 00e4 EF90 pop r14
274 00e6 0895 ret
275 /* epilogue end (size=13) */
276 /* function IR_Value_Read size 82 (55) */
284 .Lscope1:
285 .text
287 Letext:
288 /* File "IR.c": code 118 = 0x0076 ( 90), prologues 14, epilogues 14 */
DEFINED SYMBOLS
*ABS*:00000000 IR.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\WANGZH~1\LOCALS~1\Temp/cceKaaaa.s:78 .text:00000000 IR_Time_detect
C:\DOCUME~1\WANGZH~1\LOCALS~1\Temp/cceKaaaa.s:154 .text:00000046 IR_Value_Read
C:\DOCUME~1\WANGZH~1\LOCALS~1\Temp/cceKaaaa.s:287 .text:000000e8 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -