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

📄 twi.lst

📁 利用avr c编程的综合程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 264               		rjmp .L12
 265 00d2 8833      		rjmp .L15
 266 00d4 01F4      	.L29:
 267 00d6 00C0      		cpi r24,lo8(64)
 268 00d8 8933      		brne .+2
 269 00da 00F4      		rjmp .L17
 270 00dc 8033      		cpi r24,lo8(72)
 271 00de 01F0      		breq .+2
 272 00e0 00C0      		rjmp .L12
 273 00e2 00C0      		rjmp .L15
 274               	.L26:
 275 00e4 8034      		cpi r24,lo8(-112)
 276 00e6 01F4      		brne .+2
 277 00e8 00C0      		rjmp .L21
 278 00ea 8834      		cpi r24,lo8(-111)
 279 00ec 01F0      		brsh .L30
 280 00ee 00C0      		cpi r24,lo8(96)
 281 00f0 00C0      		brne .+2
 282               		rjmp .L20
 283 00f2 8039      		cpi r24,lo8(97)
 284 00f4 01F4      		brsh .L31
 285 00f6 00C0      		cpi r24,lo8(88)
 286 00f8 8139      		breq .+2
 287 00fa 00F4      		rjmp .L12
 288 00fc 8036      		rjmp .L49
 289 00fe 01F4      	.L31:
 290 0100 00C0      		cpi r24,lo8(112)
 291 0102 8136      		brne .+2
 292 0104 00F4      		rjmp .L20
 293 0106 8835      		cpi r24,lo8(-128)
 294 0108 01F0      		breq .+2
 295 010a 00C0      		rjmp .L12
 296 010c 00C0      		rjmp .L21
 297               	.L30:
 298 010e 8037      		cpi r24,lo8(-88)
 299 0110 01F4      		brne .+2
 300 0112 00C0      		rjmp .L23
 301 0114 8038      		cpi r24,lo8(-87)
 302 0116 01F0      		brsh .L32
 303 0118 00C0      		cpi r24,lo8(-96)
 304 011a 00C0      		breq .+2
 305               		rjmp .L12
 306 011c 883A      		rjmp .L50
 307 011e 01F4      	.L32:
 308 0120 00C0      		cpi r24,lo8(-72)
 309 0122 893A      		brne .+2
 310 0124 00F4      		rjmp .L24
 311 0126 803A      		cpi r24,lo8(-64)
 312 0128 01F0      		breq .+2
 313 012a 00C0      		rjmp .L12
 314 012c 00C0      		rjmp .L51
 315               	.L13:
 317 0130 01F4      	.LM23:
 318 0132 00C0      		sts string_index.1269,__zero_reg__
 319 0134 803C      	.L14:
 321 0138 00C0      	.LM24:
 322 013a 00C0      		lds r25,string_index.1269
 323               		lds r30,TWI_task_current
  91:twi.c         **** ed char string_index;
  92:twi.c         ****   switch (TWSR)
  93:twi.c         ****   {
  94:twi.c         ****   case TWI_START:
 324               	B5
 325               	.LM25:
 326 013c 1092 0000 		ldd __tmp_reg__,Z+1
 327               		ldd r31,Z+2
  95:twi.c         **** se TWI_REP_START:
  96:twi.c         ****     string_index = 0;
  97:twi.c         ****   case TWI_MTX_ADR_ACK:
 328               	 r30,__tmp_reg__
 329               		add r30,r25
 330 0140 9091 0000 		adc r31,__zero_reg__
 331 0144 E091 0000 		ld r24,Z
 332 0148 F091 0000 		out 35-32,r24
 333 014c 8081      		subi r25,lo8(-(1))
 334 014e 9817      		sts string_index.1269,r25
 335 0150 00F4      		rjmp .L36
  98:twi.c         **** ase TWI_MTX_DATA_ACK:
  99:twi.c         ****     if (string_index < TWI_task_current->length)
 336               	stabn	68,0,128,.LM26-.LFBB5
 337               	.LM26:
 338 0152 0180      		lds r30,TWI_task_current
 339 0154 F281      		lds r31,(TWI_task_current)+1
 340 0156 E02D      		ldd __tmp_reg__,Z+1
 341 0158 E90F      		ldd r31,Z+2
 342 015a F11D      		mov r30,__tmp_reg__
 343 015c 8081      		lds r24,string_index.1269
 344 015e 83B9      		add r30,r24
 345 0160 9F5F      		adc r31,__zero_reg__
 346 0162 9093 0000 		in r25,35-32
 347 0166 00C0      		st Z,r25
 348               		subi r24,lo8(-(1))
 100:twi.c         **** WI_START:
 101:twi.c         ****   case TWI_REP_START:
 102:twi.c         ****     string_index = 0;
 103:twi.c         ****   case TWI_MTX_ADR_ACK:
 104:twi.c         ****   case TWI_MTX_DATA_ACK:
 105:twi.c         ****     if (string_index < TWI_task_current->length)
 106:twi.c         ****     {
 107:twi.c         ****       TWDR = TWI_task_current->string[string_index++];
 108:twi.c         ****       TWCR = (1 << TWEN) |
 109:twi.c         **** 	(1 << TWIE) | (1 << TWINT) |
 110:twi.c         **** 	(0 << TWEA) | (0 << TWSTA) | (0 << TWSTO) |
 111:twi.c         **** 	(0 << TWWC);
 112:twi.c         ****     }
 113:twi.c         ****     else
 114:twi.c         ****     {
 115:twi.c         ****       *TWI_task_current->flag = 0;
 116:twi.c         ****       if (TWI_task_current != TWI_task_last)
 117:twi.c         ****       {
 118:twi.c         **** 	TWI_task_current = TWI_task_current->next;
 119:twi.c         **** 	TWCR = (1 << TWEN) |
 120:twi.c         **** 	  (1 << TWIE) | (1 << TWINT) |
 121:twi.c         **** 	  (0 << TWEA) | (1 << TWSTA) | (0 << TWSTO) |
 122:twi.c         **** 	  (0 << TWWC);
 123:twi.c         ****       }
 124:twi.c         ****       else
 125:twi.c         ****       {
 126:twi.c         **** 	TWI_task_first = TWI_task_last = TWI_task_current =
 127:twi.c         **** 	  0;
 128:twi.c         **** 	TWCR =
 349               	ndex.1269,r24
 350               	.L17:
 352 016c F091 0000 	.LM27:
 353 0170 0180      		lds r30,TWI_task_current
 354 0172 F281      		lds r31,(TWI_task_current)+1
 355 0174 E02D      		ld r24,Z
 356 0176 8091 0000 		lds r18,string_index.1269
 357 017a E80F      		ldi r19,lo8(0)
 358 017c F11D      		ldi r25,lo8(0)
 359 017e 93B1      		sbiw r24,1
 360 0180 9083      		cp r18,r24
 361 0182 8F5F      		cpc r19,r25
 362 0184 8093 0000 		brge .+2
 363               		rjmp .L12
 129:twi.c         **** | (1 << TWINT) | (1 <<
 130:twi.c         **** 						      TWEA)
 364               	8,0,139,.LM28-.LFBB5
 365               	.LM28:
 366 0188 E091 0000 		ldi r24,lo8(-123)
 367 018c F091 0000 		rjmp .L44
 368 0190 8081      	.L49:
 370 0196 30E0      	.LM29:
 371 0198 90E0      		lds r30,TWI_task_current
 372 019a 0197      		lds r31,(TWI_task_current)+1
 373 019c 2817      		ldd __tmp_reg__,Z+1
 374 019e 3907      		ldd r31,Z+2
 375 01a0 04F4      		mov r30,__tmp_reg__
 376 01a2 00C0      		lds r24,string_index.1269
 377               		add r30,r24
 131:twi.c         **** first = TWI_task_last = TWI_task_current =
 132:twi.c         **** 	  0;
 133:twi.c         **** 	TWCR =
 134:twi.c         **** 	  (1 << TWEN) | (1 << TWIE) | (1 << TWINT) | (1 <<
 135:twi.c         **** 						      TWEA)
 136:twi.c         **** 	  | (0 << TWSTA) | (1 << TWSTO) | (0 << TWWC);
 137:twi.c         ****       }
 138:twi.c         ****     }
 139:twi.c         ****     break;
 378               	o_reg__
 379               		in r24,35-32
 380 01a4 85E8      		st Z,r24
 382               	.LM30:
 140:twi.c         **** << TWIE) | (1 << TWINT) | (1 <<
 141:twi.c         **** 						      TWEA)
 142:twi.c         **** 	  | (0 << TWSTA) | (1 << TWSTO) | (0 << TWWC);
 143:twi.c         ****       }
 144:twi.c         ****     }
 145:twi.c         ****     break;
 146:twi.c         ****   case TWI_MRX_DATA_ACK:
 383               	r30,TWI_task_current
 384               		lds r31,(TWI_task_current)+1
 385 01a8 E091 0000 	.L47:
 386 01ac F091 0000 		ldd __tmp_reg__,Z+3
 387 01b0 0180      		ldd r31,Z+4
 388 01b2 F281      		mov r30,__tmp_reg__
 389 01b4 E02D      		st Z,__zero_reg__
 391 01ba E80F      	.LM31:
 392 01bc F11D      		lds r30,TWI_task_current
 393 01be 83B1      		lds r31,(TWI_task_current)+1
 394 01c0 8083      		lds r24,TWI_task_last
 147:twi.c         **** (1 <<
 395               	I_task_last)+1
 396               		cp r30,r24
 397 01c2 E091 0000 		cpc r31,r25
 398 01c6 F091 0000 		breq .L37
 400 01ca 0380      	.LM32:
 401 01cc F481      		ldd r24,Z+5
 402 01ce E02D      		ldd r25,Z+6
 403 01d0 1082      		sts (TWI_task_current)+1,r25
 148:twi.c         **** 
 404               	task_current,r24
 406 01d2 E091 0000 	.LM33:
 407 01d6 F091 0000 		ldi r24,lo8(-91)
 408 01da 8091 0000 		rjmp .L44
 409 01de 9091 0000 	.L37:
 411 01e4 F907      	.LM34:
 412 01e6 01F0      		sts (TWI_task_current)+1,__zero_reg__
 149:twi.c         **** CR = (1 << TWEN) |
 150:twi.c         **** 	  (1 << TWIE) | (1 << TWINT) |
 413               	task_current,__zero_reg__
 414               		sts (TWI_task_last)+1,__zero_reg__
 415 01e8 8581      		sts TWI_task_last,__zero_reg__
 416 01ea 9681      		sts (TWI_task_first)+1,__zero_reg__
 417 01ec 9093 0000 		sts TWI_task_first,__zero_reg__
 151:twi.c         **** task_current != TWI_task_last)
 419               	ts TWI_task_current,__zero_reg__
 420               		sts (TWI_task_last)+1,__zero_reg__
 421 01f4 85EA      		sts TWI_task_last,__zero_reg__
 422 01f6 00C0      		sts (TWI_task_first)+1,__zero_reg__
 423               		sts TWI_task_first,__zero_reg__
 152:twi.c         **** < TWSTA) | (0 << TWSTO) |
 153:twi.c         **** 	(0 << TWWC);
 154:twi.c         ****     }
 155:twi.c         ****     else
 156:twi.c         ****     {
 157:twi.c         ****       *TWI_task_current->flag = 0;
 158:twi.c         ****       if (TWI_task_current != TWI_task_last)
 424               	task_current)+1,__zero_reg__
 425               		sts TWI_task_current,__zero_reg__
 426 01f8 1092 0000 		sts (TWI_task_last)+1,__zero_reg__
 427 01fc 1092 0000 		sts TWI_task_last,__zero_reg__
 428 0200 1092 0000 		sts (TWI_task_first)+1,__zero_reg__
 429 0204 1092 0000 		sts TWI_task_first,__zero_reg__
 431 020c 1092 0000 	.LM35:
 159:twi.c         **** < TWSTA) | (0 << TWSTO) |
 432               	,lo8(-43)
 433               		rjmp .L44
 434 0210 85ED      	.L15:
 436               	.LM36:
 160:twi.c         ****  = TWI_task_current->string[string_index++];
 161:twi.c         ****       TWCR = (1 << TWEN) |
 162:twi.c         **** 	(1 << TWIE) | (1 << TWINT) |
 163:twi.c         **** 	(0 << TWEA) | (0 << TWSTA) | (0 << TWSTO) |
 164:twi.c         **** 	(0 << TWWC);
 165:twi.c         ****     }
 166:twi.c         ****     else
 167:twi.c         ****     {
 168:twi.c         ****       *TWI_task_current->flag = 0;
 169:twi.c         ****       if (TWI_task_current != TWI_task_last)
 170:twi.c         ****       {
 171:twi.c         **** 	TWI_task_current = TWI_task_current->next;
 172:twi.c         **** 	TWCR = (1 << TWEN) |
 173:twi.c         **** 	  (1 << TWIE) | (1 << TWINT) |
 174:twi.c         **** 	  (0 << TWEA) | (1 << TWSTA) | (0 << TWSTO) |
 437               	st,__zero_reg__
 438               		sts (TWI_task_first)+1,__zero_reg__
 439 0214 8091 0000 		sts TWI_task_first,__zero_reg__
 441 021c 9093 0000 	.LM35:
 442 0220 8093 0000 		ldi r24,lo8(-43)
 443 0224 00C0      		rjmp .L44
 444               	.L15:
 175:twi.c         **** _current = TWI_task_current->next;
 176:twi.c         **** 	TWCR = (1 << TWEN) |
 177:twi.c         **** 	  (1 << TWIE) | (1 << TWINT) |
 178:twi.c         **** 	  (0 << TWEA) | (1 << TWSTA) | (0 << TWSTO) |
 179:twi.c         **** 	  (0 << TWWC);
 180:twi.c         ****       }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -