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

📄 main.lss

📁 MEGEA64控制的TUNER程序
💻 LSS
📖 第 1 页 / 共 3 页
字号:
    if (temp == 0x2c)           /* '<' inc freq one step*/
 3de:	89 81       	ldd	r24, Y+1	; 0x01
 3e0:	8c 32       	cpi	r24, 0x2C	; 44
 3e2:	59 f0       	breq	.+22     	; 0x3fa <__vector_30+0x52>
    {
        if (Div2 == 0xff) {Div2 = 0; Div1++;}
        else Div2++;
    }
    else if (temp == 0x2e)      /* '>' dec freq one step*/
 3e4:	89 81       	ldd	r24, Y+1	; 0x01
 3e6:	8e 32       	cpi	r24, 0x2E	; 46
 3e8:	91 f0       	breq	.+36     	; 0x40e <__vector_30+0x66>
    {
        if (Div2 == 0) {Div1--; Div2=0xff;}
        else Div2--;
    }
    else if (temp == 'c')       /* 'c' inc channel */
 3ea:	89 81       	ldd	r24, Y+1	; 0x01
 3ec:	83 36       	cpi	r24, 0x63	; 99
 3ee:	39 f1       	breq	.+78     	; 0x43e <__vector_30+0x96>
    {
        if(channel++ == 103) channel = 0;
        calc_divider(channel);
    }
    else if (temp == 'x')        /* 'x' dec channel */
 3f0:	89 81       	ldd	r24, Y+1	; 0x01
 3f2:	88 37       	cpi	r24, 0x78	; 120
 3f4:	09 f0       	breq	.+2      	; 0x3f8 <__vector_30+0x50>
 3f6:	44 c0       	rjmp	.+136    	; 0x480 <__vector_30+0xd8>
 3f8:	14 c0       	rjmp	.+40     	; 0x422 <__vector_30+0x7a>
 3fa:	80 91 d3 02 	lds	r24, 0x02D3
 3fe:	8f 3f       	cpi	r24, 0xFF	; 255
 400:	99 f1       	breq	.+102    	; 0x468 <__vector_30+0xc0>
 402:	80 91 d3 02 	lds	r24, 0x02D3
 406:	8f 5f       	subi	r24, 0xFF	; 255
 408:	80 93 d3 02 	sts	0x02D3, r24
 40c:	39 c0       	rjmp	.+114    	; 0x480 <__vector_30+0xd8>
 40e:	80 91 d3 02 	lds	r24, 0x02D3
 412:	88 23       	and	r24, r24
 414:	01 f1       	breq	.+64     	; 0x456 <__vector_30+0xae>
 416:	80 91 d3 02 	lds	r24, 0x02D3
 41a:	81 50       	subi	r24, 0x01	; 1
 41c:	80 93 d3 02 	sts	0x02D3, r24
 420:	2f c0       	rjmp	.+94     	; 0x480 <__vector_30+0xd8>
    {
        if(channel-- == 0) channel = 103;
 422:	80 91 d4 02 	lds	r24, 0x02D4
 426:	81 50       	subi	r24, 0x01	; 1
 428:	80 93 d4 02 	sts	0x02D4, r24
 42c:	80 91 d4 02 	lds	r24, 0x02D4
 430:	8f 3f       	cpi	r24, 0xFF	; 255
 432:	11 f1       	breq	.+68     	; 0x478 <__vector_30+0xd0>
        calc_divider(channel);
 434:	80 91 d4 02 	lds	r24, 0x02D4
 438:	0e 94 91 00 	call	0x122	; 0x122 <calc_divider>
 43c:	21 c0       	rjmp	.+66     	; 0x480 <__vector_30+0xd8>
 43e:	80 91 d4 02 	lds	r24, 0x02D4
 442:	8f 5f       	subi	r24, 0xFF	; 255
 444:	80 93 d4 02 	sts	0x02D4, r24
 448:	80 91 d4 02 	lds	r24, 0x02D4
 44c:	88 36       	cpi	r24, 0x68	; 104
 44e:	91 f7       	brne	.-28     	; 0x434 <__vector_30+0x8c>
 450:	10 92 d4 02 	sts	0x02D4, r1
 454:	ef cf       	rjmp	.-34     	; 0x434 <__vector_30+0x8c>
 456:	80 91 d9 02 	lds	r24, 0x02D9
 45a:	81 50       	subi	r24, 0x01	; 1
 45c:	80 93 d9 02 	sts	0x02D9, r24
 460:	8f ef       	ldi	r24, 0xFF	; 255
 462:	80 93 d3 02 	sts	0x02D3, r24
 466:	0c c0       	rjmp	.+24     	; 0x480 <__vector_30+0xd8>
 468:	10 92 d3 02 	sts	0x02D3, r1
 46c:	80 91 d9 02 	lds	r24, 0x02D9
 470:	8f 5f       	subi	r24, 0xFF	; 255
 472:	80 93 d9 02 	sts	0x02D9, r24
 476:	04 c0       	rjmp	.+8      	; 0x480 <__vector_30+0xd8>
 478:	87 e6       	ldi	r24, 0x67	; 103
 47a:	80 93 d4 02 	sts	0x02D4, r24
 47e:	da cf       	rjmp	.-76     	; 0x434 <__vector_30+0x8c>
    }
    SET_FLAG(channel_change_byte_flag);
 480:	8f ef       	ldi	r24, 0xFF	; 255
 482:	80 93 d8 02 	sts	0x02D8, r24
 486:	21 96       	adiw	r28, 0x01	; 1
 488:	f8 94       	cli
 48a:	de bf       	out	0x3e, r29	; 62
 48c:	cd bf       	out	0x3d, r28	; 61
 48e:	df 91       	pop	r29
 490:	cf 91       	pop	r28
 492:	ff 91       	pop	r31
 494:	ef 91       	pop	r30
 496:	bf 91       	pop	r27
 498:	af 91       	pop	r26
 49a:	9f 91       	pop	r25
 49c:	8f 91       	pop	r24
 49e:	7f 91       	pop	r23
 4a0:	6f 91       	pop	r22
 4a2:	5f 91       	pop	r21
 4a4:	4f 91       	pop	r20
 4a6:	3f 91       	pop	r19
 4a8:	2f 91       	pop	r18
 4aa:	0f 90       	pop	r0
 4ac:	0f be       	out	0x3f, r0	; 63
 4ae:	0f 90       	pop	r0
 4b0:	1f 90       	pop	r1
 4b2:	18 95       	reti

000004b4 <PutEnter>:
}


void PutEnter(void)
{
 4b4:	8d e0       	ldi	r24, 0x0D	; 13
 4b6:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
    PutChar(0x0d);
    PutChar(0x0a);
 4ba:	8a e0       	ldi	r24, 0x0A	; 10
 4bc:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 4c0:	08 95       	ret

000004c2 <str_len>:
}

unsigned char str_len(const unsigned char * spr)
{
 4c2:	dc 01       	movw	r26, r24
    unsigned char string_len  = 0;
    unsigned char string_data = *spr++;
    
    while(string_data != '\0')
 4c4:	8c 91       	ld	r24, X
 4c6:	88 23       	and	r24, r24
 4c8:	49 f0       	breq	.+18     	; 0x4dc <str_len+0x1a>
 4ca:	fd 01       	movw	r30, r26
    {
        string_len++;
        string_data = *spr++;
 4cc:	81 81       	ldd	r24, Z+1	; 0x01
 4ce:	31 96       	adiw	r30, 0x01	; 1
 4d0:	88 23       	and	r24, r24
 4d2:	e1 f7       	brne	.-8      	; 0x4cc <str_len+0xa>
 4d4:	8e 2f       	mov	r24, r30
 4d6:	8a 1b       	sub	r24, r26
 4d8:	99 27       	eor	r25, r25
    }
    return string_len;
}
 4da:	08 95       	ret
 4dc:	80 e0       	ldi	r24, 0x00	; 0
 4de:	90 e0       	ldi	r25, 0x00	; 0
 4e0:	08 95       	ret

000004e2 <PutAscii>:

void put_string(const unsigned char * str)
{
    unsigned char i;
    unsigned char len;
    len=strlen(str);
    for(i=0; i<len; i++) 
    {
        PutChar(*str++);
    }
}

void PutAscii(unsigned char hex_data)
{
 4e2:	1f 93       	push	r17
 4e4:	18 2f       	mov	r17, r24
    unsigned char temp;
    temp = (hex_data & 0xf0) >> 4;
 4e6:	82 95       	swap	r24
 4e8:	8f 70       	andi	r24, 0x0F	; 15
    if(temp<10) temp += 0x30;
 4ea:	8a 30       	cpi	r24, 0x0A	; 10
 4ec:	48 f4       	brcc	.+18     	; 0x500 <PutAscii+0x1e>
 4ee:	80 5d       	subi	r24, 0xD0	; 208
    else temp += 55;
    PutChar(temp);
 4f0:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
    temp = hex_data & 0x0f;
 4f4:	81 2f       	mov	r24, r17
 4f6:	8f 70       	andi	r24, 0x0F	; 15
    if(temp<10) temp += 0x30;
 4f8:	8a 30       	cpi	r24, 0x0A	; 10
 4fa:	48 f4       	brcc	.+18     	; 0x50e <PutAscii+0x2c>
 4fc:	80 5d       	subi	r24, 0xD0	; 208
 4fe:	08 c0       	rjmp	.+16     	; 0x510 <PutAscii+0x2e>
 500:	89 5c       	subi	r24, 0xC9	; 201
 502:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 506:	81 2f       	mov	r24, r17
 508:	8f 70       	andi	r24, 0x0F	; 15
 50a:	8a 30       	cpi	r24, 0x0A	; 10
 50c:	b8 f3       	brcs	.-18     	; 0x4fc <PutAscii+0x1a>
    else temp += 55;
 50e:	89 5c       	subi	r24, 0xC9	; 201
    PutChar(temp);
 510:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 514:	1f 91       	pop	r17
 516:	08 95       	ret

00000518 <put_string>:
 518:	0f 93       	push	r16
 51a:	1f 93       	push	r17
 51c:	cf 93       	push	r28
 51e:	df 93       	push	r29
 520:	dc 01       	movw	r26, r24
 522:	fc 01       	movw	r30, r24
 524:	01 90       	ld	r0, Z+
 526:	00 20       	and	r0, r0
 528:	e9 f7       	brne	.-6      	; 0x524 <put_string+0xc>
 52a:	31 97       	sbiw	r30, 0x01	; 1
 52c:	e8 1b       	sub	r30, r24
 52e:	f9 0b       	sbc	r31, r25
 530:	8e 2f       	mov	r24, r30
 532:	ee 23       	and	r30, r30
 534:	69 f0       	breq	.+26     	; 0x550 <put_string+0x38>
 536:	ed 01       	movw	r28, r26
 538:	81 50       	subi	r24, 0x01	; 1
 53a:	8d 01       	movw	r16, r26
 53c:	08 0f       	add	r16, r24
 53e:	11 1d       	adc	r17, r1
 540:	0f 5f       	subi	r16, 0xFF	; 255
 542:	1f 4f       	sbci	r17, 0xFF	; 255
 544:	89 91       	ld	r24, Y+
 546:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 54a:	c0 17       	cp	r28, r16
 54c:	d1 07       	cpc	r29, r17
 54e:	d1 f7       	brne	.-12     	; 0x544 <put_string+0x2c>
 550:	df 91       	pop	r29
 552:	cf 91       	pop	r28
 554:	1f 91       	pop	r17
 556:	0f 91       	pop	r16
 558:	08 95       	ret

0000055a <timer0_task>:
 55a:	80 91 d6 02 	lds	r24, 0x02D6
 55e:	90 91 d7 02 	lds	r25, 0x02D7
 562:	c2 97       	sbiw	r24, 0x32	; 50
 564:	40 f0       	brcs	.+16     	; 0x576 <timer0_task+0x1c>
 566:	10 92 d7 02 	sts	0x02D7, r1
 56a:	10 92 d6 02 	sts	0x02D6, r1
 56e:	80 91 c6 02 	lds	r24, 0x02C6
 572:	8f 3f       	cpi	r24, 0xFF	; 255
 574:	09 f0       	breq	.+2      	; 0x578 <timer0_task+0x1e>
 576:	08 95       	ret
 578:	80 e2       	ldi	r24, 0x20	; 32
 57a:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 57e:	80 e2       	ldi	r24, 0x20	; 32
 580:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 584:	80 e2       	ldi	r24, 0x20	; 32
 586:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 58a:	80 e2       	ldi	r24, 0x20	; 32
 58c:	0e 94 ca 01 	call	0x394	; 0x394 <PutChar>
 590:	8b e1       	ldi	r24, 0x1B	; 27
 592:	91 e0       	ldi	r25, 0x01	; 1
 594:	0e 94 8c 02 	call	0x518	; 0x518 <put_string>
 598:	0e 94 85 01 	call	0x30a	; 0x30a <ReadChan>
 59c:	0e 94 71 02 	call	0x4e2	; 0x4e2 <PutAscii>
 5a0:	0e 94 5a 02 	call	0x4b4	; 0x4b4 <PutEnter>
 5a4:	10 92 c6 02 	sts	0x02C6, r1
 5a8:	08 95       	ret

000005aa <Check_UART_Int>:
 5aa:	80 91 d8 02 	lds	r24, 0x02D8
 5ae:	8f 3f       	cpi	r24, 0xFF	; 255
 5b0:	09 f0       	breq	.+2      	; 0x5b4 <Check_UART_Int+0xa>
 5b2:	08 95       	ret
 5b4:	8a e0       	ldi	r24, 0x0A	; 10
 5b6:	91 e0       	ldi	r25, 0x01	; 1
 5b8:	0e 94 8c 02 	call	0x518	; 0x518 <put_string>
 5bc:	80 91 d4 02 	lds	r24, 0x02D4
 5c0:	0e 94 71 02 	call	0x4e2	; 0x4e2 <PutAscii>
 5c4:	80 91 d4 02 	lds	r24, 0x02D4
 5c8:	0e 94 4b 01 	call	0x296	; 0x296 <SetChan>
 5cc:	10 92 d8 02 	sts	0x02D8, r1
 5d0:	08 95       	ret

000005d2 <main>:
}

int main(void)
{
 5d2:	10 92 d7 02 	sts	0x02D7, r1
 5d6:	10 92 d6 02 	sts	0x02D6, r1
    timer0_counter = 0;
    channel = 0;
 5da:	10 92 d4 02 	sts	0x02D4, r1
    port_init();
 5de:	0e 94 ad 01 	call	0x35a	; 0x35a <port_init>
    Timer0Init();
 5e2:	0e 94 b6 01 	call	0x36c	; 0x36c <Timer0Init>
    UartInit();
 5e6:	0e 94 bc 01 	call	0x378	; 0x378 <UartInit>
    TIMSK = (1<<TOIE0);
 5ea:	81 e0       	ldi	r24, 0x01	; 1
 5ec:	87 bf       	out	0x37, r24	; 55
    sei();
 5ee:	78 94       	sei
    put_string(start_string);
 5f0:	80 e0       	ldi	r24, 0x00	; 0
 5f2:	91 e0       	ldi	r25, 0x01	; 1
 5f4:	0e 94 8c 02 	call	0x518	; 0x518 <put_string>
    
    CLEAR_FLAG(channel_change_byte_flag);
 5f8:	10 92 d8 02 	sts	0x02D8, r1
    CLEAR_FLAG(channel_busy_byte_flag);
 5fc:	10 92 c6 02 	sts	0x02C6, r1
    channel = 0;
 600:	10 92 d4 02 	sts	0x02D4, r1
    calc_divider(channel);
 604:	80 91 d4 02 	lds	r24, 0x02D4
 608:	0e 94 91 00 	call	0x122	; 0x122 <calc_divider>
    
    put_string(current_channel_string);
 60c:	8a e0       	ldi	r24, 0x0A	; 10
 60e:	91 e0       	ldi	r25, 0x01	; 1
 610:	0e 94 8c 02 	call	0x518	; 0x518 <put_string>
    PutAscii(channel);
 614:	80 91 d4 02 	lds	r24, 0x02D4
 618:	0e 94 71 02 	call	0x4e2	; 0x4e2 <PutAscii>
    SetChan(channel);
 61c:	80 91 d4 02 	lds	r24, 0x02D4
 620:	0e 94 4b 01 	call	0x296	; 0x296 <SetChan>
    PutEnter();
 624:	0e 94 5a 02 	call	0x4b4	; 0x4b4 <PutEnter>
    
    while(1)
    {
        timer0_task();
 628:	0e 94 ad 02 	call	0x55a	; 0x55a <timer0_task>
        Check_UART_Int();
 62c:	0e 94 d5 02 	call	0x5aa	; 0x5aa <Check_UART_Int>
 630:	fb cf       	rjmp	.-10     	; 0x628 <main+0x56>

00000632 <__udivmodsi4>:
 632:	a1 e2       	ldi	r26, 0x21	; 33
 634:	1a 2e       	mov	r1, r26
 636:	aa 1b       	sub	r26, r26
 638:	bb 1b       	sub	r27, r27
 63a:	fd 01       	movw	r30, r26
 63c:	0d c0       	rjmp	.+26     	; 0x658 <__udivmodsi4_ep>

0000063e <__udivmodsi4_loop>:
 63e:	aa 1f       	adc	r26, r26
 640:	bb 1f       	adc	r27, r27
 642:	ee 1f       	adc	r30, r30
 644:	ff 1f       	adc	r31, r31
 646:	a2 17       	cp	r26, r18
 648:	b3 07       	cpc	r27, r19
 64a:	e4 07       	cpc	r30, r20
 64c:	f5 07       	cpc	r31, r21
 64e:	20 f0       	brcs	.+8      	; 0x658 <__udivmodsi4_ep>
 650:	a2 1b       	sub	r26, r18
 652:	b3 0b       	sbc	r27, r19
 654:	e4 0b       	sbc	r30, r20
 656:	f5 0b       	sbc	r31, r21

00000658 <__udivmodsi4_ep>:
 658:	66 1f       	adc	r22, r22
 65a:	77 1f       	adc	r23, r23
 65c:	88 1f       	adc	r24, r24
 65e:	99 1f       	adc	r25, r25
 660:	1a 94       	dec	r1
 662:	69 f7       	brne	.-38     	; 0x63e <__udivmodsi4_loop>
 664:	60 95       	com	r22
 666:	70 95       	com	r23
 668:	80 95       	com	r24
 66a:	90 95       	com	r25
 66c:	9b 01       	movw	r18, r22
 66e:	ac 01       	movw	r20, r24
 670:	bd 01       	movw	r22, r26
 672:	cf 01       	movw	r24, r30
 674:	08 95       	ret

00000676 <_exit>:
 676:	ff cf       	rjmp	.-2      	; 0x676 <_exit>

⌨️ 快捷键说明

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