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 + -
显示快捷键?