timer1.lst
来自「cs5460a做功率表用 cs5460a做功率表用 cs5460a做功率表」· LST 代码 · 共 203 行
LST
203 行
1 .file "Timer1.c"
2 .arch atmega8
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:
101 .global WaitTimeTab
102 .section .progmem.data,"a",@progbits
105 WaitTimeTab:
106 0000 0000 .word Refresh_AD
107 0002 0000 .word KeyScan
108 0004 0000 .word ReadAD
109 0006 0000 .word UartOverTime
110 0008 0000 .word WatchKeyTime
111 000a 0000 .word WatchAd
112 000c 0000 .word SwitchOutDelay
113 .text
115 .global Timer1_MainLoop
117 Timer1_MainLoop:
1:avrgcc/Timer1.c **** /********************************************
2:avrgcc/Timer1.c **** 公司名称:
3:avrgcc/Timer1.c **** 文 件 名:
4:avrgcc/Timer1.c **** 版 本 号:
5:avrgcc/Timer1.c **** 程序设计:
6:avrgcc/Timer1.c **** 说 明:
7:avrgcc/Timer1.c **** 完成日期:
8:avrgcc/Timer1.c **** 修改日期:
9:avrgcc/Timer1.c **** 功能摘要:
10:avrgcc/Timer1.c **** **********************************************/
11:avrgcc/Timer1.c **** #define _Timer0
12:avrgcc/Timer1.c **** #include "includes.h"
13:avrgcc/Timer1.c ****
14:avrgcc/Timer1.c **** const WAIT_TIME_STRUCT *WaitTimeTab[] PROGMEM = {
15:avrgcc/Timer1.c **** &Refresh_AD,
16:avrgcc/Timer1.c **** &KeyScan,
17:avrgcc/Timer1.c **** &ReadAD,
18:avrgcc/Timer1.c **** &UartOverTime,
19:avrgcc/Timer1.c **** &WatchKeyTime,
20:avrgcc/Timer1.c **** &WatchAd,
21:avrgcc/Timer1.c **** &SwitchOutDelay,
22:avrgcc/Timer1.c **** };
23:avrgcc/Timer1.c ****
24:avrgcc/Timer1.c **** #define WAIT_EVENT_CNT sizeof(WaitTimeTab)/2
25:avrgcc/Timer1.c **** //---------------------------------------------------
26:avrgcc/Timer1.c **** void Timer1_MainLoop(void)
27:avrgcc/Timer1.c **** {
119 .LM1:
120 /* prologue: frame size=0 */
121 /* prologue end (size=0) */
28:avrgcc/Timer1.c **** uint8 i;
29:avrgcc/Timer1.c **** WAIT_TIME_STRUCT *pWaitTime;
30:avrgcc/Timer1.c ****
31:avrgcc/Timer1.c **** if (fTimer1_500ms)
123 .LM2:
124 0000 8091 0000 lds r24,fTimer1_500ms
125 0004 8823 tst r24
126 0006 59F1 breq .L1
32:avrgcc/Timer1.c **** {
33:avrgcc/Timer1.c **** fTimer1_500ms = 0;
128 .LM3:
129 0008 1092 0000 sts fTimer1_500ms,__zero_reg__
130 000c 51E0 ldi r21,lo8(1)
131 000e 46E0 ldi r20,lo8(6)
132 0010 20E0 ldi r18,lo8(0)
133 0012 30E0 ldi r19,hi8(0)
134 .L8:
34:avrgcc/Timer1.c **** for (i=0; i<WAIT_EVENT_CNT; i++)
35:avrgcc/Timer1.c **** {
36:avrgcc/Timer1.c **** OS_CLOSE_INT();
136 .LM4:
137 /* #APP */
138 0014 F894 cli
139 /* #NOAPP */
140 0016 8091 0000 lds r24,Os_Enter_Sum
141 001a 8F5F subi r24,lo8(-(1))
142 001c 8093 0000 sts Os_Enter_Sum,r24
143 .LBB2:
37:avrgcc/Timer1.c **** pWaitTime = (WAIT_TIME_STRUCT *)pgm_read_word(&WaitTimeTab[i]);
145 .LM5:
146 0020 F901 movw r30,r18
147 0022 E050 subi r30,lo8(-(WaitTimeTab))
148 0024 F040 sbci r31,hi8(-(WaitTimeTab))
149 /* #APP */
150 0026 A591 lpm r26, Z+
151 0028 B491 lpm r27, Z
152
153 /* #NOAPP */
154 .LBE2:
38:avrgcc/Timer1.c **** if ((pWaitTime->WaitTime > 0) && (--pWaitTime->WaitTime == 0))
156 .LM6:
157 002a FD01 movw r30,r26
158 002c 8181 ldd r24,Z+1
159 002e 9281 ldd r25,Z+2
160 0030 0097 sbiw r24,0
161 0032 31F0 breq .L6
162 0034 0197 sbiw r24,1
163 0036 9283 std Z+2,r25
164 0038 8183 std Z+1,r24
165 003a 892B or r24,r25
166 003c 09F4 brne .L6
39:avrgcc/Timer1.c **** {
40:avrgcc/Timer1.c **** pWaitTime->fGetTime = 1;
168 .LM7:
169 003e 5C93 st X,r21
170 .L6:
41:avrgcc/Timer1.c **** }
42:avrgcc/Timer1.c **** OS_OPEN_INT();
172 .LM8:
173 0040 8091 0000 lds r24,Os_Enter_Sum
174 0044 8150 subi r24,lo8(-(-1))
175 0046 8093 0000 sts Os_Enter_Sum,r24
176 004a 8091 0000 lds r24,Os_Enter_Sum
177 004e 8823 tst r24
178 0050 09F4 brne .L5
179 /* #APP */
180 0052 7894 sei
181 /* #NOAPP */
182 .L5:
184 .LM9:
185 0054 4150 subi r20,lo8(-(-1))
186 0056 2E5F subi r18,lo8(-(2))
187 0058 3F4F sbci r19,hi8(-(2))
188 005a 47FF sbrs r20,7
189 005c DBCF rjmp .L8
190 .L1:
191 005e 0895 ret
192 /* epilogue: frame size=0 */
193 /* epilogue: noreturn */
194 /* epilogue end (size=0) */
195 /* function Timer1_MainLoop size 54 (54) */
204 .Lscope0:
206 .global __vector_8
208 __vector_8:
43:avrgcc/Timer1.c **** }
44:avrgcc/Timer1.c **** }
45:avrgcc/Timer1.c **** }
46:avrgcc/Timer1.c **** //------------------------------------------
47:avrgcc/Timer1.c **** SIGNAL(SIG_OVERFLOW1)
48:avrgcc/Timer1.c **** {
210 .LM10:
211 /* prologue: frame size=0 */
212 0060 1F92 push __zero_reg__
213 0062 0F92 push __tmp_reg__
214 0064 0FB6 in __tmp_reg__,__SREG__
215 0066 0F92 push __tmp_reg__
216 0068 1124 clr __zero_reg__
217 006a 8F93 push r24
218 006c 9F93 push r25
219 /* prologue end (size=7) */
49:avrgcc/Timer1.c **** TCNT1 = 0x10000 - (uint32)((float)F_CPU * CLOCK_TIME1 / F_N_TIME1 / 1000); //500MS
221 .LM11:
222 006e 80E8 ldi r24,lo8(-1152)
223 0070 9BEF ldi r25,hi8(-1152)
224 0072 9DBD out (76)+1-0x20,r25
225 0074 8CBD out 76-0x20,r24
50:avrgcc/Timer1.c **** fTimer1_500ms = 1;
227 .LM12:
228 0076 81E0 ldi r24,lo8(1)
229 0078 8093 0000 sts fTimer1_500ms,r24
230 /* epilogue: frame size=0 */
231 007c 9F91 pop r25
232 007e 8F91 pop r24
233 0080 0F90 pop __tmp_reg__
234 0082 0FBE out __SREG__,__tmp_reg__
235 0084 0F90 pop __tmp_reg__
236 0086 1F90 pop __zero_reg__
237 0088 1895 reti
238 /* epilogue end (size=7) */
239 /* function __vector_8 size 21 (7) */
241 .Lscope1:
243 .text
245 Letext:
246 /* File "avrgcc/Timer1.c": code 75 = 0x004b ( 61), prologues 7, epilogues 7 */
DEFINED SYMBOLS
*ABS*:00000000 Timer1.c
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:105 .progmem.data:00000000 WaitTimeTab
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:117 .text:00000000 Timer1_MainLoop
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:208 .text:00000060 __vector_8
C:\DOCUME~1\zgh\LOCALS~1\Temp/cckdbaaa.s:245 .text:0000008a Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
Refresh_AD
KeyScan
ReadAD
UartOverTime
WatchKeyTime
WatchAd
SwitchOutDelay
fTimer1_500ms
Os_Enter_Sum
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?