📄 sensor.lst
字号:
1 .file "sensor.c"
2 .arch atmega128
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:
83 .global SensorTempStdControlInit
85 SensorTempStdControlInit:
1:sensor.c **** /*
2:sensor.c **** ****************************************************************************
3:sensor.c **** * 宁波市科技园区创业大厦六楼
4:sensor.c **** * 宁波中科集成电路设计中心 版权所有 Copyright 2005
5:sensor.c **** *
6:sensor.c **** *文件名: sensor.c
7:sensor.c **** *程序员:
8:sensor.c **** *主要内容:光传感,温度传感
9:sensor.c **** *完成日期:2005.3.28
10:sensor.c **** ****************************************************************************
11:sensor.c **** */
12:sensor.c ****
13:sensor.c **** #include "sensor.h"
14:sensor.c **** #include "os.h"
15:sensor.c **** #include "adc.h"
16:sensor.c **** #include "app.h"
17:sensor.c ****
18:sensor.c **** int PhotoTempM_state;
19:sensor.c ****
20:sensor.c **** result_t SensorTempStdControlInit(void)
21:sensor.c **** {
87 .LM1:
88 /* prologue: frame size=0 */
89 /* prologue end (size=0) */
22:sensor.c **** ADCBindPort(OS_ADC_TEMP_PORT, OSH_ACTUAL_TEMP_PORT);
91 .LM2:
92 0000 61E0 ldi r22,lo8(1)
93 0002 82E0 ldi r24,lo8(2)
94 0004 0E94 0000 call ADCBindPort
95 .LBB2:
23:sensor.c **** { uint8_t atomicState = AtomicStart();
97 .LM3:
98 0008 0E94 0000 call AtomicStart
24:sensor.c **** {
25:sensor.c **** PhotoTempM_state = PhotoTempM_IDLE;
100 .LM4:
101 000c 21E0 ldi r18,lo8(1)
102 000e 30E0 ldi r19,hi8(1)
103 0010 3093 0000 sts (PhotoTempM_state)+1,r19
104 0014 2093 0000 sts PhotoTempM_state,r18
26:sensor.c **** }
27:sensor.c **** AtomicEnd(atomicState); }
106 .LM5:
107 0018 0E94 0000 call AtomicEnd
108 .LBE2:
28:sensor.c **** return ADCControlInit();
110 .LM6:
111 001c 0E94 0000 call ADCControlInit
29:sensor.c **** }
113 .LM7:
114 0020 9927 clr r25
115 /* epilogue: frame size=0 */
116 0022 0895 ret
117 /* epilogue end (size=1) */
118 /* function SensorTempStdControlInit size 18 (17) */
121 .global OSH_MAKE_INT1_OUTPUT
123 OSH_MAKE_INT1_OUTPUT:
30:sensor.c ****
31:sensor.c **** void OSH_MAKE_INT1_OUTPUT(void)
32:sensor.c **** {
125 .LM8:
126 /* prologue: frame size=0 */
127 /* prologue end (size=0) */
33:sensor.c **** * (volatile unsigned char *)(0x02 + 0x20) |= 1 << 5;
129 .LM9:
130 0024 159A sbi 34-0x20,5
131 /* epilogue: frame size=0 */
132 0026 0895 ret
133 /* epilogue end (size=1) */
134 /* function OSH_MAKE_INT1_OUTPUT size 2 (1) */
137 .global OSH_MAKE_PHOTO_CTL_OUTPUT
139 OSH_MAKE_PHOTO_CTL_OUTPUT:
34:sensor.c **** }
35:sensor.c ****
36:sensor.c **** void OSH_MAKE_PHOTO_CTL_OUTPUT(void)
37:sensor.c **** {
141 .LM10:
142 /* prologue: frame size=0 */
143 /* prologue end (size=0) */
38:sensor.c **** OSH_MAKE_INT1_OUTPUT();
145 .LM11:
146 0028 0E94 0000 call OSH_MAKE_INT1_OUTPUT
147 /* epilogue: frame size=0 */
148 002c 0895 ret
149 /* epilogue end (size=1) */
150 /* function OSH_MAKE_PHOTO_CTL_OUTPUT size 3 (2) */
153 .global OSH_SET_INT1_PIN
155 OSH_SET_INT1_PIN:
39:sensor.c **** }
40:sensor.c ****
41:sensor.c **** void OSH_SET_INT1_PIN(void)
42:sensor.c **** {
157 .LM12:
158 /* prologue: frame size=0 */
159 /* prologue end (size=0) */
43:sensor.c **** * (volatile unsigned char *)(0x03 + 0x20) |= 1 << 5;
161 .LM13:
162 002e 1D9A sbi 35-0x20,5
163 /* epilogue: frame size=0 */
164 0030 0895 ret
165 /* epilogue end (size=1) */
166 /* function OSH_SET_INT1_PIN size 2 (1) */
169 .global OSH_SET_PHOTO_CTL_PIN
171 OSH_SET_PHOTO_CTL_PIN:
44:sensor.c **** }
45:sensor.c ****
46:sensor.c **** void OSH_SET_PHOTO_CTL_PIN(void)
47:sensor.c **** {
173 .LM14:
174 /* prologue: frame size=0 */
175 /* prologue end (size=0) */
48:sensor.c **** OSH_SET_INT1_PIN();
177 .LM15:
178 0032 0E94 0000 call OSH_SET_INT1_PIN
179 /* epilogue: frame size=0 */
180 0036 0895 ret
181 /* epilogue end (size=1) */
182 /* function OSH_SET_PHOTO_CTL_PIN size 3 (2) */
185 .global OSH_MAKE_INT2_OUTPUT
187 OSH_MAKE_INT2_OUTPUT:
49:sensor.c **** }
50:sensor.c ****
51:sensor.c **** void OSH_MAKE_INT2_OUTPUT(void)
52:sensor.c **** {
189 .LM16:
190 /* prologue: frame size=0 */
191 /* prologue end (size=0) */
53:sensor.c **** * (volatile unsigned char *)(0x02 + 0x20) |= 1 << 6;
193 .LM17:
194 0038 169A sbi 34-0x20,6
195 /* epilogue: frame size=0 */
196 003a 0895 ret
197 /* epilogue end (size=1) */
198 /* function OSH_MAKE_INT2_OUTPUT size 2 (1) */
201 .global OSH_MAKE_TEMP_CTL_OUTPUT
203 OSH_MAKE_TEMP_CTL_OUTPUT:
54:sensor.c **** }
55:sensor.c ****
56:sensor.c **** void OSH_MAKE_TEMP_CTL_OUTPUT(void)
57:sensor.c **** {
205 .LM18:
206 /* prologue: frame size=0 */
207 /* prologue end (size=0) */
58:sensor.c **** OSH_MAKE_INT2_OUTPUT();
209 .LM19:
210 003c 0E94 0000 call OSH_MAKE_INT2_OUTPUT
211 /* epilogue: frame size=0 */
212 0040 0895 ret
213 /* epilogue end (size=1) */
214 /* function OSH_MAKE_TEMP_CTL_OUTPUT size 3 (2) */
217 .global OSH_SET_INT2_PIN
219 OSH_SET_INT2_PIN:
59:sensor.c **** }
60:sensor.c ****
61:sensor.c **** void OSH_SET_INT2_PIN(void)
62:sensor.c **** {
221 .LM20:
222 /* prologue: frame size=0 */
223 /* prologue end (size=0) */
63:sensor.c **** * (volatile unsigned char *)(0x03 + 0x20) |= 1 << 6;
225 .LM21:
226 0042 1E9A sbi 35-0x20,6
227 /* epilogue: frame size=0 */
228 0044 0895 ret
229 /* epilogue end (size=1) */
230 /* function OSH_SET_INT2_PIN size 2 (1) */
233 .global OSH_SET_TEMP_CTL_PIN
235 OSH_SET_TEMP_CTL_PIN:
64:sensor.c **** }
65:sensor.c ****
66:sensor.c **** void OSH_SET_TEMP_CTL_PIN(void)
67:sensor.c **** {
237 .LM22:
238 /* prologue: frame size=0 */
239 /* prologue end (size=0) */
68:sensor.c **** OSH_SET_INT2_PIN();
241 .LM23:
242 0046 0E94 0000 call OSH_SET_INT2_PIN
243 /* epilogue: frame size=0 */
244 004a 0895 ret
245 /* epilogue end (size=1) */
246 /* function OSH_SET_TEMP_CTL_PIN size 3 (2) */
249 .global SensorTempStdControlStart
251 SensorTempStdControlStart:
69:sensor.c **** }
70:sensor.c ****
71:sensor.c **** result_t SensorTempStdControlStart(void)
72:sensor.c **** {
253 .LM24:
254 /* prologue: frame size=0 */
255 004c 1F93 push r17
256 /* prologue end (size=1) */
257 .LBB3:
73:sensor.c **** { uint8_t atomicState = AtomicStart();
259 .LM25:
260 004e 0E94 0000 call AtomicStart
261 0052 182F mov r17,r24
74:sensor.c **** {
75:sensor.c **** OSH_SET_TEMP_CTL_PIN();
263 .LM26:
264 0054 0E94 0000 call OSH_SET_TEMP_CTL_PIN
76:sensor.c **** OSH_MAKE_TEMP_CTL_OUTPUT();
266 .LM27:
267 0058 0E94 0000 call OSH_MAKE_TEMP_CTL_OUTPUT
77:sensor.c **** }
78:sensor.c **** AtomicEnd(atomicState); }
269 .LM28:
270 005c 812F mov r24,r17
271 005e 0E94 0000 call AtomicEnd
272 .LBE3:
79:sensor.c **** return SUCCESS;
80:sensor.c **** }
274 .LM29:
275 0062 81E0 ldi r24,lo8(1)
276 0064 90E0 ldi r25,hi8(1)
277 /* epilogue: frame size=0 */
278 0066 1F91 pop r17
279 0068 0895 ret
280 /* epilogue end (size=2) */
281 /* function SensorTempStdControlStart size 15 (12) */
287 .global SensorInternalTempADCGetData
289 SensorInternalTempADCGetData:
81:sensor.c ****
82:sensor.c **** result_t SensorInternalTempADCGetData(void)
83:sensor.c **** {
291 .LM30:
292 /* prologue: frame size=0 */
293 /* prologue end (size=0) */
84:sensor.c **** unsigned char result;
85:sensor.c **** result = ADCGetData(OS_ADC_TEMP_PORT);
295 .LM31:
296 006a 82E0 ldi r24,lo8(2)
297 006c 0E94 0000 call ADCGetData
86:sensor.c ****
87:sensor.c **** return result;
88:sensor.c **** }
299 .LM32:
300 0070 9927 clr r25
301 /* epilogue: frame size=0 */
302 0072 0895 ret
303 /* epilogue end (size=1) */
304 /* function SensorInternalTempADCGetData size 5 (4) */
307 .global OSH_MAKE_INT2_INPUT
309 OSH_MAKE_INT2_INPUT:
89:sensor.c ****
90:sensor.c **** void OSH_MAKE_INT2_INPUT(void)
91:sensor.c **** {
311 .LM33:
312 /* prologue: frame size=0 */
313 /* prologue end (size=0) */
92:sensor.c **** * (volatile unsigned char *)(0x02 + 0x20) &= ~(1 << 6);
315 .LM34:
316 0074 1698 cbi 34-0x20,6
317 /* epilogue: frame size=0 */
318 0076 0895 ret
319 /* epilogue end (size=1) */
320 /* function OSH_MAKE_INT2_INPUT size 2 (1) */
323 .global OSH_MAKE_TEMP_CTL_INPUT
325 OSH_MAKE_TEMP_CTL_INPUT:
93:sensor.c **** }
94:sensor.c ****
95:sensor.c **** void OSH_MAKE_TEMP_CTL_INPUT(void)
96:sensor.c **** {
327 .LM35:
328 /* prologue: frame size=0 */
329 /* prologue end (size=0) */
97:sensor.c **** OSH_MAKE_INT2_INPUT();
331 .LM36:
332 0078 0E94 0000 call OSH_MAKE_INT2_INPUT
333 /* epilogue: frame size=0 */
334 007c 0895 ret
335 /* epilogue end (size=1) */
336 /* function OSH_MAKE_TEMP_CTL_INPUT size 3 (2) */
339 .global OSH_CLR_INT2_PIN
341 OSH_CLR_INT2_PIN:
98:sensor.c **** }
99:sensor.c ****
100:sensor.c **** void OSH_CLR_INT2_PIN(void)
101:sensor.c **** {
343 .LM37:
344 /* prologue: frame size=0 */
345 /* prologue end (size=0) */
102:sensor.c **** * (volatile unsigned char *)(0x03 + 0x20) &= ~(1 << 6);
347 .LM38:
348 007e 1E98 cbi 35-0x20,6
349 /* epilogue: frame size=0 */
350 0080 0895 ret
351 /* epilogue end (size=1) */
352 /* function OSH_CLR_INT2_PIN size 2 (1) */
355 .global OSH_CLR_TEMP_CTL_PIN
357 OSH_CLR_TEMP_CTL_PIN:
103:sensor.c **** }
104:sensor.c ****
105:sensor.c **** void OSH_CLR_TEMP_CTL_PIN(void)
106:sensor.c **** {
359 .LM39:
360 /* prologue: frame size=0 */
361 /* prologue end (size=0) */
107:sensor.c **** OSH_CLR_INT2_PIN();
363 .LM40:
364 0082 0E94 0000 call OSH_CLR_INT2_PIN
365 /* epilogue: frame size=0 */
366 0086 0895 ret
367 /* epilogue end (size=1) */
368 /* function OSH_CLR_TEMP_CTL_PIN size 3 (2) */
371 .global OSH_MAKE_INT1_INPUT
373 OSH_MAKE_INT1_INPUT:
108:sensor.c **** }
109:sensor.c ****
110:sensor.c **** void OSH_MAKE_INT1_INPUT(void)
111:sensor.c **** {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -