⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ir.lst

📁 建立在AVR基础上的测试LED数码管电压表
💻 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 + -