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

📄 spokepov.lss

📁 旋转16个LED灯控制程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
 228:	1c bc       	out	0x2c, r1	; 44
 22a:	80 91 8b 00 	lds	r24, 0x008B
 22e:	90 91 8c 00 	lds	r25, 0x008C
 232:	8f 3f       	cpi	r24, 0xFF	; 255
 234:	91 05       	cpc	r25, r1
 236:	08 f5       	brcc	.+66     	; 0x27a <__vector_2+0x86>
 238:	80 91 8b 00 	lds	r24, 0x008B
 23c:	90 91 8c 00 	lds	r25, 0x008C
 240:	04 97       	sbiw	r24, 0x04	; 4
 242:	d8 f0       	brcs	.+54     	; 0x27a <__vector_2+0x86>
 244:	80 91 8b 00 	lds	r24, 0x008B
 248:	90 91 8c 00 	lds	r25, 0x008C
 24c:	98 2f       	mov	r25, r24
 24e:	88 27       	eor	r24, r24
 250:	22 b7       	in	r18, 0x32	; 50
 252:	33 27       	eor	r19, r19
 254:	82 2b       	or	r24, r18
 256:	93 2b       	or	r25, r19
 258:	9b bd       	out	0x2b, r25	; 43
 25a:	8a bd       	out	0x2a, r24	; 42
 25c:	12 be       	out	0x32, r1	; 50
 25e:	8f e0       	ldi	r24, 0x0F	; 15
 260:	80 93 84 00 	sts	0x0084, r24
 264:	80 93 83 00 	sts	0x0083, r24
 268:	10 92 82 00 	sts	0x0082, r1
 26c:	8e b5       	in	r24, 0x2e	; 46
 26e:	81 60       	ori	r24, 0x01	; 1
 270:	8e bd       	out	0x2e, r24	; 46
 272:	89 b7       	in	r24, 0x39	; 57
 274:	80 64       	ori	r24, 0x40	; 64
 276:	89 bf       	out	0x39, r24	; 57
 278:	05 c0       	rjmp	.+10     	; 0x284 <__vector_2+0x90>
 27a:	82 e0       	ldi	r24, 0x02	; 2
 27c:	9d df       	rcall	.-198    	; 0x1b8 <set_led>
 27e:	8e b5       	in	r24, 0x2e	; 46
 280:	8e 7f       	andi	r24, 0xFE	; 254
 282:	8e bd       	out	0x2e, r24	; 46
 284:	10 92 8c 00 	sts	0x008C, r1
 288:	10 92 8b 00 	sts	0x008B, r1
 28c:	10 92 8a 00 	sts	0x008A, r1
 290:	c3 98       	cbi	0x18, 3	; 24
 292:	ff 91       	pop	r31
 294:	ef 91       	pop	r30
 296:	bf 91       	pop	r27
 298:	af 91       	pop	r26
 29a:	9f 91       	pop	r25
 29c:	8f 91       	pop	r24
 29e:	7f 91       	pop	r23
 2a0:	6f 91       	pop	r22
 2a2:	5f 91       	pop	r21
 2a4:	4f 91       	pop	r20
 2a6:	3f 91       	pop	r19
 2a8:	2f 91       	pop	r18
 2aa:	0f 90       	pop	r0
 2ac:	0f be       	out	0x3f, r0	; 63
 2ae:	0f 90       	pop	r0
 2b0:	1f 90       	pop	r1
 2b2:	18 95       	reti

000002b4 <__vector_4>:
 2b4:	1f 92       	push	r1
 2b6:	0f 92       	push	r0
 2b8:	0f b6       	in	r0, 0x3f	; 63
 2ba:	0f 92       	push	r0
 2bc:	11 24       	eor	r1, r1
 2be:	ef 92       	push	r14
 2c0:	ff 92       	push	r15
 2c2:	0f 93       	push	r16
 2c4:	1f 93       	push	r17
 2c6:	2f 93       	push	r18
 2c8:	3f 93       	push	r19
 2ca:	4f 93       	push	r20
 2cc:	5f 93       	push	r21
 2ce:	6f 93       	push	r22
 2d0:	7f 93       	push	r23
 2d2:	8f 93       	push	r24
 2d4:	9f 93       	push	r25
 2d6:	af 93       	push	r26
 2d8:	bf 93       	push	r27
 2da:	cf 93       	push	r28
 2dc:	df 93       	push	r29
 2de:	ef 93       	push	r30
 2e0:	ff 93       	push	r31
 2e2:	78 94       	sei
 2e4:	c1 9a       	sbi	0x18, 1	; 24
 2e6:	00 91 87 00 	lds	r16, 0x0087
 2ea:	10 91 88 00 	lds	r17, 0x0088
 2ee:	c0 91 85 00 	lds	r28, 0x0085
 2f2:	d0 91 86 00 	lds	r29, 0x0086
 2f6:	e0 90 84 00 	lds	r14, 0x0084
 2fa:	f0 90 83 00 	lds	r15, 0x0083
 2fe:	80 91 8b 00 	lds	r24, 0x008B
 302:	90 91 8c 00 	lds	r25, 0x008C
 306:	82 56       	subi	r24, 0x62	; 98
 308:	92 40       	sbci	r25, 0x02	; 2
 30a:	08 f0       	brcs	.+2      	; 0x30e <__vector_4+0x5a>
 30c:	66 c0       	rjmp	.+204    	; 0x3da <__vector_4+0x126>
 30e:	d8 9a       	sbi	0x1b, 0	; 27
 310:	f3 94       	inc	r15
 312:	80 e1       	ldi	r24, 0x10	; 16
 314:	f8 16       	cp	r15, r24
 316:	c9 f5       	brne	.+114    	; 0x38a <__vector_4+0xd6>
 318:	ff 24       	eor	r15, r15
 31a:	8e 2d       	mov	r24, r14
 31c:	99 27       	eor	r25, r25
 31e:	01 96       	adiw	r24, 0x01	; 1
 320:	28 2f       	mov	r18, r24
 322:	39 2f       	mov	r19, r25
 324:	80 7f       	andi	r24, 0xF0	; 240
 326:	91 70       	andi	r25, 0x01	; 1
 328:	e2 2e       	mov	r14, r18
 32a:	e8 1a       	sub	r14, r24
 32c:	ae 2d       	mov	r26, r14
 32e:	bb 27       	eor	r27, r27
 330:	fb 2f       	mov	r31, r27
 332:	ea 2f       	mov	r30, r26
 334:	ef 58       	subi	r30, 0x8F	; 143
 336:	ff 4f       	sbci	r31, 0xFF	; 255
 338:	e0 81       	ld	r30, Z
 33a:	e0 52       	subi	r30, 0x20	; 32
 33c:	8e 2f       	mov	r24, r30
 33e:	86 95       	lsr	r24
 340:	08 2f       	mov	r16, r24
 342:	11 27       	eor	r17, r17
 344:	66 e0       	ldi	r22, 0x06	; 6
 346:	00 0f       	add	r16, r16
 348:	11 1f       	adc	r17, r17
 34a:	6a 95       	dec	r22
 34c:	e1 f7       	brne	.-8      	; 0x346 <__vector_4+0x92>
 34e:	8e 2f       	mov	r24, r30
 350:	99 27       	eor	r25, r25
 352:	81 70       	andi	r24, 0x01	; 1
 354:	90 70       	andi	r25, 0x00	; 0
 356:	88 0f       	add	r24, r24
 358:	99 1f       	adc	r25, r25
 35a:	08 2b       	or	r16, r24
 35c:	19 2b       	or	r17, r25
 35e:	a0 5a       	subi	r26, 0xA0	; 160
 360:	bf 4f       	sbci	r27, 0xFF	; 255
 362:	ec 91       	ld	r30, X
 364:	e0 52       	subi	r30, 0x20	; 32
 366:	8e 2f       	mov	r24, r30
 368:	86 95       	lsr	r24
 36a:	c8 2f       	mov	r28, r24
 36c:	dd 27       	eor	r29, r29
 36e:	46 e0       	ldi	r20, 0x06	; 6
 370:	cc 0f       	add	r28, r28
 372:	dd 1f       	adc	r29, r29
 374:	4a 95       	dec	r20
 376:	e1 f7       	brne	.-8      	; 0x370 <__vector_4+0xbc>
 378:	8e 2f       	mov	r24, r30
 37a:	99 27       	eor	r25, r25
 37c:	81 70       	andi	r24, 0x01	; 1
 37e:	90 70       	andi	r25, 0x00	; 0
 380:	88 0f       	add	r24, r24
 382:	99 1f       	adc	r25, r25
 384:	c8 2b       	or	r28, r24
 386:	d9 2b       	or	r29, r25
 388:	03 c0       	rjmp	.+6      	; 0x390 <__vector_4+0xdc>
 38a:	0c 5f       	subi	r16, 0xFC	; 252
 38c:	1f 4f       	sbci	r17, 0xFF	; 255
 38e:	24 96       	adiw	r28, 0x04	; 4
 390:	42 e0       	ldi	r20, 0x02	; 2
 392:	6d e8       	ldi	r22, 0x8D	; 141
 394:	70 e0       	ldi	r23, 0x00	; 0
 396:	91 2f       	mov	r25, r17
 398:	80 2f       	mov	r24, r16
 39a:	9c d1       	rcall	.+824    	; 0x6d4 <spieeprom_read>
 39c:	42 e0       	ldi	r20, 0x02	; 2
 39e:	6f e8       	ldi	r22, 0x8F	; 143
 3a0:	70 e0       	ldi	r23, 0x00	; 0
 3a2:	8c 2f       	mov	r24, r28
 3a4:	9d 2f       	mov	r25, r29
 3a6:	96 d1       	rcall	.+812    	; 0x6d4 <spieeprom_read>
 3a8:	f4 de       	rcall	.-536    	; 0x192 <clock_leds>
 3aa:	f8 94       	cli
 3ac:	80 91 82 00 	lds	r24, 0x0082
 3b0:	88 23       	and	r24, r24
 3b2:	69 f0       	breq	.+26     	; 0x3ce <__vector_4+0x11a>
 3b4:	10 93 88 00 	sts	0x0088, r17
 3b8:	00 93 87 00 	sts	0x0087, r16
 3bc:	d0 93 86 00 	sts	0x0086, r29
 3c0:	c0 93 85 00 	sts	0x0085, r28
 3c4:	e0 92 84 00 	sts	0x0084, r14
 3c8:	f0 92 83 00 	sts	0x0083, r15
 3cc:	03 c0       	rjmp	.+6      	; 0x3d4 <__vector_4+0x120>
 3ce:	81 e0       	ldi	r24, 0x01	; 1
 3d0:	80 93 82 00 	sts	0x0082, r24
 3d4:	78 94       	sei
 3d6:	d8 98       	cbi	0x1b, 0	; 27
 3d8:	09 c0       	rjmp	.+18     	; 0x3ec <__vector_4+0x138>
 3da:	d9 9a       	sbi	0x1b, 1	; 27
 3dc:	f8 94       	cli
 3de:	8e b5       	in	r24, 0x2e	; 46
 3e0:	88 7f       	andi	r24, 0xF8	; 248
 3e2:	8e bd       	out	0x2e, r24	; 46
 3e4:	78 94       	sei
 3e6:	82 e0       	ldi	r24, 0x02	; 2
 3e8:	e7 de       	rcall	.-562    	; 0x1b8 <set_led>
 3ea:	d9 98       	cbi	0x1b, 1	; 27
 3ec:	c1 98       	cbi	0x18, 1	; 24
 3ee:	ff 91       	pop	r31
 3f0:	ef 91       	pop	r30
 3f2:	df 91       	pop	r29
 3f4:	cf 91       	pop	r28
 3f6:	bf 91       	pop	r27
 3f8:	af 91       	pop	r26
 3fa:	9f 91       	pop	r25
 3fc:	8f 91       	pop	r24
 3fe:	7f 91       	pop	r23
 400:	6f 91       	pop	r22
 402:	5f 91       	pop	r21
 404:	4f 91       	pop	r20
 406:	3f 91       	pop	r19
 408:	2f 91       	pop	r18
 40a:	1f 91       	pop	r17
 40c:	0f 91       	pop	r16
 40e:	ff 90       	pop	r15
 410:	ef 90       	pop	r14
 412:	0f 90       	pop	r0
 414:	0f be       	out	0x3f, r0	; 63
 416:	0f 90       	pop	r0
 418:	1f 90       	pop	r1
 41a:	18 95       	reti

0000041c <set_all>:
 41c:	80 93 90 00 	sts	0x0090, r24
 420:	80 93 8f 00 	sts	0x008F, r24
 424:	80 93 8e 00 	sts	0x008E, r24
 428:	80 93 8d 00 	sts	0x008D, r24
 42c:	b2 de       	rcall	.-668    	; 0x192 <clock_leds>
 42e:	08 95       	ret

00000430 <test_leds>:
 430:	cf 93       	push	r28
 432:	c0 e0       	ldi	r28, 0x00	; 0
 434:	8c 2f       	mov	r24, r28
 436:	c0 de       	rcall	.-640    	; 0x1b8 <set_led>
 438:	8a e0       	ldi	r24, 0x0A	; 10
 43a:	3a de       	rcall	.-908    	; 0xb0 <delay_ms>
 43c:	cf 5f       	subi	r28, 0xFF	; 255
 43e:	c1 32       	cpi	r28, 0x21	; 33
 440:	c8 f3       	brcs	.-14     	; 0x434 <test_leds+0x4>
 442:	8a ea       	ldi	r24, 0xAA	; 170
 444:	eb df       	rcall	.-42     	; 0x41c <set_all>
 446:	82 e3       	ldi	r24, 0x32	; 50
 448:	33 de       	rcall	.-922    	; 0xb0 <delay_ms>
 44a:	85 e5       	ldi	r24, 0x55	; 85
 44c:	e7 df       	rcall	.-50     	; 0x41c <set_all>
 44e:	85 e5       	ldi	r24, 0x55	; 85
 450:	e5 df       	rcall	.-54     	; 0x41c <set_all>
 452:	82 e3       	ldi	r24, 0x32	; 50
 454:	2d de       	rcall	.-934    	; 0xb0 <delay_ms>
 456:	80 e0       	ldi	r24, 0x00	; 0
 458:	e1 df       	rcall	.-62     	; 0x41c <set_all>
 45a:	8f ef       	ldi	r24, 0xFF	; 255
 45c:	29 de       	rcall	.-942    	; 0xb0 <delay_ms>
 45e:	8f ef       	ldi	r24, 0xFF	; 255
 460:	27 de       	rcall	.-946    	; 0xb0 <delay_ms>
 462:	cf 91       	pop	r28
 464:	08 95       	ret

00000466 <tx_computer_byte>:
 466:	98 2f       	mov	r25, r24
 468:	1a ba       	out	0x1a, r1	; 26
 46a:	8f e5       	ldi	r24, 0x5F	; 95
 46c:	87 bb       	out	0x17, r24	; 23
 46e:	88 e1       	ldi	r24, 0x18	; 24
 470:	8d b9       	out	0x0d, r24	; 13
 472:	9f b9       	out	0x0f, r25	; 15
 474:	80 e4       	ldi	r24, 0x40	; 64
 476:	8e b9       	out	0x0e, r24	; 14
 478:	76 99       	sbic	0x0e, 6	; 14
 47a:	11 c0       	rjmp	.+34     	; 0x49e <tx_computer_byte+0x38>
 47c:	a8 95       	wdr
 47e:	80 91 8b 00 	lds	r24, 0x008B
 482:	90 91 8c 00 	lds	r25, 0x008C
 486:	8f 5f       	subi	r24, 0xFF	; 255
 488:	9f 4f       	sbci	r25, 0xFF	; 255
 48a:	19 f4       	brne	.+6      	; 0x492 <tx_computer_byte+0x2c>
 48c:	81 e0       	ldi	r24, 0x01	; 1
 48e:	80 93 89 00 	sts	0x0089, r24
 492:	80 91 89 00 	lds	r24, 0x0089
 496:	88 23       	and	r24, r24
 498:	11 f4       	brne	.+4      	; 0x49e <tx_computer_byte+0x38>
 49a:	76 9b       	sbis	0x0e, 6	; 14
 49c:	ef cf       	rjmp	.-34     	; 0x47c <tx_computer_byte+0x16>
 49e:	9f b1       	in	r25, 0x0f	; 15
 4a0:	8f ed       	ldi	r24, 0xDF	; 223
 4a2:	87 bb       	out	0x17, r24	; 23
 4a4:	1d b8       	out	0x0d, r1	; 13
 4a6:	89 2f       	mov	r24, r25
 4a8:	99 27       	eor	r25, r25
 4aa:	08 95       	ret

000004ac <internal_eeprom_read>:

// Read the internal EEPROM

uint8_t internal_eeprom_read(uint8_t addr) {

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

  EEAR = addr;							// Store address to read
 4b0:	8e bb       	out	0x1e, r24	; 30
  EECR |= _BV(EERE);					// Trigger the EEPROM read - this takes only one
 4b2:	e0 9a       	sbi	0x1c, 0	; 28
										// cycle, so the result can immediately be returned!
  return EEDR;							
 4b4:	8d b3       	in	r24, 0x1d	; 29

}
 4b6:	99 27       	eor	r25, r25
 4b8:	08 95       	ret

000004ba <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
 4ba:	e1 99       	sbic	0x1c, 1	; 28
 4bc:	fe cf       	rjmp	.-4      	; 0x4ba <internal_eeprom_write>

  EEAR = addr;							// Store address to write
 4be:	8e bb       	out	0x1e, r24	; 30
  EEDR = data;							// and the data
 4c0:	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 
 4c2:	f8 94       	cli
  
  EECR |= _BV(EEMWE);   // Master enable, unlocks ability to write to EEPROM
 4c4:	e2 9a       	sbi	0x1c, 2	; 28
  EECR |= _BV(EEWE);	// Program enable, actually does it.
 4c6:	e1 9a       	sbi	0x1c, 1	; 28
  
  sei();                // Turn on interrupts again
 4c8:	78 94       	sei
 4ca:	08 95       	ret

000004cc <main>:
 4cc:	ce ec       	ldi	r28, 0xCE	; 206
 4ce:	d0 e0       	ldi	r29, 0x00	; 0
 4d0:	de bf       	out	0x3e, r29	; 62
 4d2:	cd bf       	out	0x3d, r28	; 61
 4d4:	04 b7       	in	r16, 0x34	; 52
 4d6:	14 be       	out	0x34, r1	; 52
 4d8:	8e e0       	ldi	r24, 0x0E	; 14
 4da:	81 bd       	out	0x21, r24	; 33
 4dc:	33 de       	rcall	.-922    	; 0x144 <ioinit>
 4de:	00 fd       	sbrc	r16, 0
 4e0:	a7 df       	rcall	.-178    	; 0x430 <test_leds>
 4e2:	80 2f       	mov	r24, r16
 4e4:	8e 5f       	subi	r24, 0xFE	; 254
 4e6:	68 de       	rcall	.-816    	; 0x1b8 <set_led>
 4e8:	78 94       	sei
 4ea:	78 94       	sei
 4ec:	80 e0       	ldi	r24, 0x00	; 0
 4ee:	bb df       	rcall	.-138    	; 0x466 <tx_computer_byte>
 4f0:	08 2f       	mov	r16, r24
 4f2:	88 23       	and	r24, r24
 4f4:	09 f4       	brne	.+2      	; 0x4f8 <main+0x2c>
 4f6:	91 c0       	rjmp	.+290    	; 0x61a <main+0x14e>
 4f8:	f8 94       	cli
 4fa:	10 92 8c 00 	sts	0x008C, r1
 4fe:	10 92 8b 00 	sts	0x008B, r1
 502:	99 27       	eor	r25, r25
 504:	86 38       	cpi	r24, 0x86	; 134

⌨️ 快捷键说明

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