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

📄 spokepov.lss

📁 旋转16个LED灯控制程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
 230:	b7 df       	rcall	.-146    	; 0x1a0 <clock_leds>
 232:	08 95       	ret

00000234 <__vector_2>:
 234:	1f 92       	push	r1
 236:	0f 92       	push	r0
 238:	0f b6       	in	r0, 0x3f	; 63
 23a:	0f 92       	push	r0
 23c:	11 24       	eor	r1, r1
 23e:	2f 93       	push	r18
 240:	3f 93       	push	r19
 242:	4f 93       	push	r20
 244:	5f 93       	push	r21
 246:	6f 93       	push	r22
 248:	7f 93       	push	r23
 24a:	8f 93       	push	r24
 24c:	9f 93       	push	r25
 24e:	af 93       	push	r26
 250:	bf 93       	push	r27
 252:	ef 93       	push	r30
 254:	ff 93       	push	r31
 256:	c3 9a       	sbi	0x18, 3	; 24
 258:	80 91 69 00 	lds	r24, 0x0069
 25c:	85 30       	cpi	r24, 0x05	; 5
 25e:	08 f4       	brcc	.+2      	; 0x262 <__vector_2+0x2e>
 260:	6b c0       	rjmp	.+214    	; 0x338 <__vector_2+0x104>
 262:	81 e0       	ldi	r24, 0x01	; 1
 264:	80 93 64 00 	sts	0x0064, r24
 268:	80 91 60 00 	lds	r24, 0x0060
 26c:	28 2f       	mov	r18, r24
 26e:	33 27       	eor	r19, r19
 270:	80 91 67 00 	lds	r24, 0x0067
 274:	90 91 68 00 	lds	r25, 0x0068
 278:	82 17       	cp	r24, r18
 27a:	93 07       	cpc	r25, r19
 27c:	51 f0       	breq	.+20     	; 0x292 <__vector_2+0x5e>
 27e:	80 91 67 00 	lds	r24, 0x0067
 282:	90 91 68 00 	lds	r25, 0x0068
 286:	01 96       	adiw	r24, 0x01	; 1
 288:	90 93 68 00 	sts	0x0068, r25
 28c:	80 93 67 00 	sts	0x0067, r24
 290:	0e c0       	rjmp	.+28     	; 0x2ae <__vector_2+0x7a>
 292:	10 92 68 00 	sts	0x0068, r1
 296:	10 92 67 00 	sts	0x0067, r1
 29a:	80 91 65 00 	lds	r24, 0x0065
 29e:	90 91 66 00 	lds	r25, 0x0066
 2a2:	80 50       	subi	r24, 0x00	; 0
 2a4:	9c 4f       	sbci	r25, 0xFC	; 252
 2a6:	90 93 66 00 	sts	0x0066, r25
 2aa:	80 93 65 00 	sts	0x0065, r24
 2ae:	1d bc       	out	0x2d, r1	; 45
 2b0:	1c bc       	out	0x2c, r1	; 44
 2b2:	80 91 6a 00 	lds	r24, 0x006A
 2b6:	90 91 6b 00 	lds	r25, 0x006B
 2ba:	8f 3f       	cpi	r24, 0xFF	; 255
 2bc:	91 05       	cpc	r25, r1
 2be:	78 f5       	brcc	.+94     	; 0x31e <__vector_2+0xea>
 2c0:	80 91 6a 00 	lds	r24, 0x006A
 2c4:	90 91 6b 00 	lds	r25, 0x006B
 2c8:	04 97       	sbiw	r24, 0x04	; 4
 2ca:	48 f1       	brcs	.+82     	; 0x31e <__vector_2+0xea>
 2cc:	80 91 6a 00 	lds	r24, 0x006A
 2d0:	90 91 6b 00 	lds	r25, 0x006B
 2d4:	98 2f       	mov	r25, r24
 2d6:	88 27       	eor	r24, r24
 2d8:	22 b7       	in	r18, 0x32	; 50
 2da:	33 27       	eor	r19, r19
 2dc:	82 2b       	or	r24, r18
 2de:	93 2b       	or	r25, r19
 2e0:	9b bd       	out	0x2b, r25	; 43
 2e2:	8a bd       	out	0x2a, r24	; 42
 2e4:	12 be       	out	0x32, r1	; 50
 2e6:	80 e0       	ldi	r24, 0x00	; 0
 2e8:	2d df       	rcall	.-422    	; 0x144 <internal_eeprom_read>
 2ea:	99 27       	eor	r25, r25
 2ec:	28 2f       	mov	r18, r24
 2ee:	39 2f       	mov	r19, r25
 2f0:	20 70       	andi	r18, 0x00	; 0
 2f2:	31 70       	andi	r19, 0x01	; 1
 2f4:	82 1b       	sub	r24, r18
 2f6:	93 0b       	sbc	r25, r19
 2f8:	88 0f       	add	r24, r24
 2fa:	99 1f       	adc	r25, r25
 2fc:	88 0f       	add	r24, r24
 2fe:	99 1f       	adc	r25, r25
 300:	90 93 63 00 	sts	0x0063, r25
 304:	80 93 62 00 	sts	0x0062, r24
 308:	81 e0       	ldi	r24, 0x01	; 1
 30a:	1c df       	rcall	.-456    	; 0x144 <internal_eeprom_read>
 30c:	80 93 74 00 	sts	0x0074, r24
 310:	8e b5       	in	r24, 0x2e	; 46
 312:	81 60       	ori	r24, 0x01	; 1
 314:	8e bd       	out	0x2e, r24	; 46
 316:	89 b7       	in	r24, 0x39	; 57
 318:	80 64       	ori	r24, 0x40	; 64
 31a:	89 bf       	out	0x39, r24	; 57
 31c:	09 c0       	rjmp	.+18     	; 0x330 <__vector_2+0xfc>
 31e:	64 e0       	ldi	r22, 0x04	; 4
 320:	82 e0       	ldi	r24, 0x02	; 2
 322:	68 df       	rcall	.-304    	; 0x1f4 <set_led>
 324:	65 e0       	ldi	r22, 0x05	; 5
 326:	82 e0       	ldi	r24, 0x02	; 2
 328:	65 df       	rcall	.-310    	; 0x1f4 <set_led>
 32a:	8e b5       	in	r24, 0x2e	; 46
 32c:	8e 7f       	andi	r24, 0xFE	; 254
 32e:	8e bd       	out	0x2e, r24	; 46
 330:	10 92 6b 00 	sts	0x006B, r1
 334:	10 92 6a 00 	sts	0x006A, r1
 338:	10 92 69 00 	sts	0x0069, r1
 33c:	c3 98       	cbi	0x18, 3	; 24
 33e:	ff 91       	pop	r31
 340:	ef 91       	pop	r30
 342:	bf 91       	pop	r27
 344:	af 91       	pop	r26
 346:	9f 91       	pop	r25
 348:	8f 91       	pop	r24
 34a:	7f 91       	pop	r23
 34c:	6f 91       	pop	r22
 34e:	5f 91       	pop	r21
 350:	4f 91       	pop	r20
 352:	3f 91       	pop	r19
 354:	2f 91       	pop	r18
 356:	0f 90       	pop	r0
 358:	0f be       	out	0x3f, r0	; 63
 35a:	0f 90       	pop	r0
 35c:	1f 90       	pop	r1
 35e:	18 95       	reti

00000360 <__vector_4>:
 360:	1f 92       	push	r1
 362:	0f 92       	push	r0
 364:	0f b6       	in	r0, 0x3f	; 63
 366:	0f 92       	push	r0
 368:	11 24       	eor	r1, r1
 36a:	2f 93       	push	r18
 36c:	3f 93       	push	r19
 36e:	4f 93       	push	r20
 370:	5f 93       	push	r21
 372:	6f 93       	push	r22
 374:	7f 93       	push	r23
 376:	8f 93       	push	r24
 378:	9f 93       	push	r25
 37a:	af 93       	push	r26
 37c:	bf 93       	push	r27
 37e:	cf 93       	push	r28
 380:	df 93       	push	r29
 382:	ef 93       	push	r30
 384:	ff 93       	push	r31
 386:	78 94       	sei
 388:	c1 9a       	sbi	0x18, 1	; 24
 38a:	20 91 62 00 	lds	r18, 0x0062
 38e:	30 91 63 00 	lds	r19, 0x0063
 392:	80 91 6a 00 	lds	r24, 0x006A
 396:	90 91 6b 00 	lds	r25, 0x006B
 39a:	82 56       	subi	r24, 0x62	; 98
 39c:	92 40       	sbci	r25, 0x02	; 2
 39e:	90 f5       	brcc	.+100    	; 0x404 <__vector_4+0xa4>
 3a0:	d8 9a       	sbi	0x1b, 0	; 27
 3a2:	d3 2f       	mov	r29, r19
 3a4:	c2 2f       	mov	r28, r18
 3a6:	d3 70       	andi	r29, 0x03	; 3
 3a8:	80 91 65 00 	lds	r24, 0x0065
 3ac:	90 91 66 00 	lds	r25, 0x0066
 3b0:	64 e0       	ldi	r22, 0x04	; 4
 3b2:	8c 0f       	add	r24, r28
 3b4:	9d 1f       	adc	r25, r29
 3b6:	e1 d1       	rcall	.+962    	; 0x77a <spieeprom_read_into_leds>
 3b8:	80 91 74 00 	lds	r24, 0x0074
 3bc:	88 23       	and	r24, r24
 3be:	59 f0       	breq	.+22     	; 0x3d6 <__vector_4+0x76>
 3c0:	80 91 65 00 	lds	r24, 0x0065
 3c4:	90 91 66 00 	lds	r25, 0x0066
 3c8:	8c 1b       	sub	r24, r28
 3ca:	9d 0b       	sbc	r25, r29
 3cc:	65 e0       	ldi	r22, 0x05	; 5
 3ce:	80 50       	subi	r24, 0x00	; 0
 3d0:	9c 4f       	sbci	r25, 0xFC	; 252
 3d2:	d3 d1       	rcall	.+934    	; 0x77a <spieeprom_read_into_leds>
 3d4:	06 c0       	rjmp	.+12     	; 0x3e2 <__vector_4+0x82>
 3d6:	95 9a       	sbi	0x12, 5	; 18
	...
 3e0:	95 98       	cbi	0x12, 5	; 18
 3e2:	f8 94       	cli
 3e4:	80 91 62 00 	lds	r24, 0x0062
 3e8:	90 91 63 00 	lds	r25, 0x0063
 3ec:	93 70       	andi	r25, 0x03	; 3
 3ee:	c8 17       	cp	r28, r24
 3f0:	d9 07       	cpc	r29, r25
 3f2:	29 f4       	brne	.+10     	; 0x3fe <__vector_4+0x9e>
 3f4:	24 96       	adiw	r28, 0x04	; 4
 3f6:	d0 93 63 00 	sts	0x0063, r29
 3fa:	c0 93 62 00 	sts	0x0062, r28
 3fe:	78 94       	sei
 400:	d8 98       	cbi	0x1b, 0	; 27
 402:	0d c0       	rjmp	.+26     	; 0x41e <__vector_4+0xbe>
 404:	d9 9a       	sbi	0x1b, 1	; 27
 406:	f8 94       	cli
 408:	8e b5       	in	r24, 0x2e	; 46
 40a:	88 7f       	andi	r24, 0xF8	; 248
 40c:	8e bd       	out	0x2e, r24	; 46
 40e:	78 94       	sei
 410:	64 e0       	ldi	r22, 0x04	; 4
 412:	82 e0       	ldi	r24, 0x02	; 2
 414:	ef de       	rcall	.-546    	; 0x1f4 <set_led>
 416:	65 e0       	ldi	r22, 0x05	; 5
 418:	82 e0       	ldi	r24, 0x02	; 2
 41a:	ec de       	rcall	.-552    	; 0x1f4 <set_led>
 41c:	d9 98       	cbi	0x1b, 1	; 27
 41e:	c1 98       	cbi	0x18, 1	; 24
 420:	ff 91       	pop	r31
 422:	ef 91       	pop	r30
 424:	df 91       	pop	r29
 426:	cf 91       	pop	r28
 428:	bf 91       	pop	r27
 42a:	af 91       	pop	r26
 42c:	9f 91       	pop	r25
 42e:	8f 91       	pop	r24
 430:	7f 91       	pop	r23
 432:	6f 91       	pop	r22
 434:	5f 91       	pop	r21
 436:	4f 91       	pop	r20
 438:	3f 91       	pop	r19
 43a:	2f 91       	pop	r18
 43c:	0f 90       	pop	r0
 43e:	0f be       	out	0x3f, r0	; 63
 440:	0f 90       	pop	r0
 442:	1f 90       	pop	r1
 444:	18 95       	reti

00000446 <set_all>:
 446:	64 30       	cpi	r22, 0x04	; 4
 448:	19 f4       	brne	.+6      	; 0x450 <set_all+0xa>
 44a:	e0 e7       	ldi	r30, 0x70	; 112
 44c:	f0 e0       	ldi	r31, 0x00	; 0
 44e:	02 c0       	rjmp	.+4      	; 0x454 <set_all+0xe>
 450:	ec e6       	ldi	r30, 0x6C	; 108
 452:	f0 e0       	ldi	r31, 0x00	; 0
 454:	83 83       	std	Z+3, r24	; 0x03
 456:	82 83       	std	Z+2, r24	; 0x02
 458:	81 83       	std	Z+1, r24	; 0x01
 45a:	80 83       	st	Z, r24
 45c:	86 2f       	mov	r24, r22
 45e:	a0 de       	rcall	.-704    	; 0x1a0 <clock_leds>
 460:	08 95       	ret

00000462 <test_leds>:
 462:	cf 93       	push	r28
 464:	c0 e0       	ldi	r28, 0x00	; 0
 466:	64 e0       	ldi	r22, 0x04	; 4
 468:	81 e2       	ldi	r24, 0x21	; 33
 46a:	8c 1b       	sub	r24, r28
 46c:	c3 de       	rcall	.-634    	; 0x1f4 <set_led>
 46e:	65 e0       	ldi	r22, 0x05	; 5
 470:	8c 2f       	mov	r24, r28
 472:	c0 de       	rcall	.-640    	; 0x1f4 <set_led>
 474:	8a e0       	ldi	r24, 0x0A	; 10
 476:	1c de       	rcall	.-968    	; 0xb0 <delay_ms>
 478:	cf 5f       	subi	r28, 0xFF	; 255
 47a:	c1 32       	cpi	r28, 0x21	; 33
 47c:	a0 f3       	brcs	.-24     	; 0x466 <test_leds+0x4>
 47e:	64 e0       	ldi	r22, 0x04	; 4
 480:	8a ea       	ldi	r24, 0xAA	; 170
 482:	e1 df       	rcall	.-62     	; 0x446 <set_all>
 484:	65 e0       	ldi	r22, 0x05	; 5
 486:	8a ea       	ldi	r24, 0xAA	; 170
 488:	de df       	rcall	.-68     	; 0x446 <set_all>
 48a:	82 e3       	ldi	r24, 0x32	; 50
 48c:	11 de       	rcall	.-990    	; 0xb0 <delay_ms>
 48e:	64 e0       	ldi	r22, 0x04	; 4
 490:	85 e5       	ldi	r24, 0x55	; 85
 492:	d9 df       	rcall	.-78     	; 0x446 <set_all>
 494:	65 e0       	ldi	r22, 0x05	; 5
 496:	85 e5       	ldi	r24, 0x55	; 85
 498:	d6 df       	rcall	.-84     	; 0x446 <set_all>
 49a:	82 e3       	ldi	r24, 0x32	; 50
 49c:	09 de       	rcall	.-1006   	; 0xb0 <delay_ms>
 49e:	64 e0       	ldi	r22, 0x04	; 4
 4a0:	8e ef       	ldi	r24, 0xFE	; 254
 4a2:	d1 df       	rcall	.-94     	; 0x446 <set_all>
 4a4:	65 e0       	ldi	r22, 0x05	; 5
 4a6:	8e ef       	ldi	r24, 0xFE	; 254
 4a8:	ce df       	rcall	.-100    	; 0x446 <set_all>
 4aa:	8f ef       	ldi	r24, 0xFF	; 255
 4ac:	01 de       	rcall	.-1022   	; 0xb0 <delay_ms>
 4ae:	8f ef       	ldi	r24, 0xFF	; 255
 4b0:	ff dd       	rcall	.-1026   	; 0xb0 <delay_ms>
 4b2:	cf 91       	pop	r28
 4b4:	08 95       	ret

000004b6 <tx_computer_byte>:
 4b6:	98 2f       	mov	r25, r24
 4b8:	1a ba       	out	0x1a, r1	; 26
 4ba:	8f e5       	ldi	r24, 0x5F	; 95
 4bc:	87 bb       	out	0x17, r24	; 23
 4be:	88 e1       	ldi	r24, 0x18	; 24
 4c0:	8d b9       	out	0x0d, r24	; 13
 4c2:	9f b9       	out	0x0f, r25	; 15
 4c4:	80 e4       	ldi	r24, 0x40	; 64
 4c6:	8e b9       	out	0x0e, r24	; 14
 4c8:	76 99       	sbic	0x0e, 6	; 14
 4ca:	11 c0       	rjmp	.+34     	; 0x4ee <tx_computer_byte+0x38>
 4cc:	a8 95       	wdr
 4ce:	80 91 6a 00 	lds	r24, 0x006A
 4d2:	90 91 6b 00 	lds	r25, 0x006B
 4d6:	8f 5f       	subi	r24, 0xFF	; 255
 4d8:	9f 4f       	sbci	r25, 0xFF	; 255
 4da:	19 f4       	brne	.+6      	; 0x4e2 <tx_computer_byte+0x2c>
 4dc:	81 e0       	ldi	r24, 0x01	; 1
 4de:	80 93 64 00 	sts	0x0064, r24
 4e2:	80 91 64 00 	lds	r24, 0x0064
 4e6:	88 23       	and	r24, r24
 4e8:	11 f4       	brne	.+4      	; 0x4ee <tx_computer_byte+0x38>
 4ea:	76 9b       	sbis	0x0e, 6	; 14
 4ec:	ef cf       	rjmp	.-34     	; 0x4cc <tx_computer_byte+0x16>
 4ee:	9f b1       	in	r25, 0x0f	; 15
 4f0:	8f ed       	ldi	r24, 0xDF	; 223
 4f2:	87 bb       	out	0x17, r24	; 23
 4f4:	1d b8       	out	0x0d, r1	; 13
 4f6:	89 2f       	mov	r24, r25
 4f8:	99 27       	eor	r25, r25
 4fa:	08 95       	ret

000004fc <internal_eeprom_write>:

// Write the internal EEPROM

void internal_eeprom_write(uint8_t addr, uint8_t data) {

  loop_until_bit_is_clear(EECR, EEWE);	// Wait for last write to finish
 4fc:	e1 99       	sbic	0x1c, 1	; 28
 4fe:	fe cf       	rjmp	.-4      	; 0x4fc <internal_eeprom_write>

  EEAR = addr;							// Store address to write
 500:	8e bb       	out	0x1e, r24	; 30
  EEDR = data;							// and the data
 502:	6d bb       	out	0x1d, r22	; 29
  
  // The following register bitflips are time-critical and must
  // happen within 4 cycles of each other.  For this reason,
  // interrupts cannot be allowed here.
  
  // Note: Page 19 refers to EEWE as EEPE and EEMWE as EEMPE.

  // POSSIBLE BUG: EEPM{0,1} bits in EECR define what programming
  // mode the EEPROM is in.  They do not have a defined initial
  // value if the EEPROM is programming when a reset comes in.
  // This is a tiny time window, but should they be explicitly
  // cleared?
  
  cli();                // Turn off interrupts 
 504:	f8 94       	cli
  
  EECR |= _BV(EEMWE);   // Master enable, unlocks ability to write to EEPROM
 506:	e2 9a       	sbi	0x1c, 2	; 28
  EECR |= _BV(EEWE);	// Program enable, actually does it.
 508:	e1 9a       	sbi	0x1c, 1	; 28
  
  sei();                // Turn on interrupts again
 50a:	78 94       	sei
 50c:	08 95       	ret

0000050e <main>:
 50e:	ce ec       	ldi	r28, 0xCE	; 206
 510:	d0 e0       	ldi	r29, 0x00	; 0
 512:	de bf       	out	0x3e, r29	; 62
 514:	cd bf       	out	0x3d, r28	; 61
 516:	04 b7       	in	r16, 0x34	; 52
 518:	14 be       	out	0x34, r1	; 52
 51a:	8e e0       	ldi	r24, 0x0E	; 14
 51c:	81 bd       	out	0x21, r24	; 33
 51e:	19 de       	rcall	.-974    	; 0x152 <ioinit>
 520:	00 fd       	sbrc	r16, 0
 522:	9f df       	rcall	.-194    	; 0x462 <test_leds>
 524:	64 e0       	ldi	r22, 0x04	; 4
 526:	80 2f       	mov	r24, r16
 528:	8e 5f       	subi	r24, 0xFE	; 254
 52a:	64 de       	rcall	.-824    	; 0x1f4 <set_led>
 52c:	65 e0       	ldi	r22, 0x05	; 5
 52e:	82 e0       	ldi	r24, 0x02	; 2
 530:	61 de       	rcall	.-830    	; 0x1f4 <set_led>
 532:	82 e0       	ldi	r24, 0x02	; 2
 534:	07 de       	rcall	.-1010   	; 0x144 <internal_eeprom_read>
 536:	80 93 60 00 	sts	0x0060, r24
 53a:	78 94       	sei
 53c:	78 94       	sei
 53e:	80 e0       	ldi	r24, 0x00	; 0
 540:	ba df       	rcall	.-140    	; 0x4b6 <tx_computer_byte>
 542:	08 2f       	mov	r16, r24
 544:	88 23       	and	r24, r24
 546:	09 f4       	brne	.+2      	; 0x54a <main+0x3c>
 548:	92 c0       	rjmp	.+292    	; 0x66e <main+0x160>
 54a:	f8 94       	cli
 54c:	10 92 6b 00 	sts	0x006B, r1
 550:	10 92 6a 00 	sts	0x006A, r1

⌨️ 快捷键说明

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