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

📄 pwm32.lss

📁 本人用AVR mega32写的一个关于输出32路PWM的程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
					    }
						if(checksum==data)
     6e8:	9b 81       	ldd	r25, Y+3	; 0x03
     6ea:	8a 81       	ldd	r24, Y+2	; 0x02
     6ec:	98 17       	cp	r25, r24
     6ee:	39 f4       	brne	.+14     	; 0x6fe <__stack+0x1ff>
						{
						    AckToPc();
     6f0:	0e 94 71 0c 	call	0x18e2 <AckToPc>
                      	    RxCounter=0;
     6f4:	10 92 0a 01 	sts	0x010A, r1
                            FinalDispose();
     6f8:	0e 94 03 0c 	call	0x1806 <FinalDispose>
     6fc:	0c c0       	rjmp	.+24     	; 0x716 <__stack+0x217>

						}
						else
				        {
                      	    RxCounter=0;
     6fe:	10 92 0a 01 	sts	0x010A, r1
							NackToPc( );
     702:	0e 94 64 0c 	call	0x18c8 <NackToPc>
						    break;
     706:	07 c0       	rjmp	.+14     	; 0x716 <__stack+0x217>
						}
					}
				}

			}

		}
		else
		{
		    RxCounter=0;
     708:	10 92 0a 01 	sts	0x010A, r1
			UART_ERROR_FLAG=1;
     70c:	80 91 8c 02 	lds	r24, 0x028C
     710:	88 60       	ori	r24, 0x08	; 8
     712:	80 93 8c 02 	sts	0x028C, r24
     716:	28 96       	adiw	r28, 0x08	; 8
     718:	f8 94       	cli
     71a:	de bf       	out	0x3e, r29	; 62
     71c:	cd bf       	out	0x3d, r28	; 61
     71e:	df 91       	pop	r29
     720:	cf 91       	pop	r28
     722:	ff 91       	pop	r31
     724:	ef 91       	pop	r30
     726:	bf 91       	pop	r27
     728:	af 91       	pop	r26
     72a:	9f 91       	pop	r25
     72c:	8f 91       	pop	r24
     72e:	7f 91       	pop	r23
     730:	6f 91       	pop	r22
     732:	5f 91       	pop	r21
     734:	4f 91       	pop	r20
     736:	3f 91       	pop	r19
     738:	2f 91       	pop	r18
     73a:	0f 90       	pop	r0
     73c:	0f be       	out	0x3f, r0	; 63
     73e:	0f 90       	pop	r0
     740:	1f 90       	pop	r1
     742:	18 95       	reti

00000744 <SystemInitial>:
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void SystemInitial(void) 
{
     744:	cf 93       	push	r28
     746:	df 93       	push	r29
     748:	cd b7       	in	r28, 0x3d	; 61
     74a:	de b7       	in	r29, 0x3e	; 62
    cli();
     74c:	f8 94       	cli
	//*****************flag initial***********************//  
    AD_FLAG=0;
     74e:	80 91 c0 01 	lds	r24, 0x01C0
     752:	8d 7f       	andi	r24, 0xFD	; 253
     754:	80 93 c0 01 	sts	0x01C0, r24
	PCINT_FLAG=0;
     758:	80 91 c0 01 	lds	r24, 0x01C0
     75c:	8f 7d       	andi	r24, 0xDF	; 223
     75e:	80 93 c0 01 	sts	0x01C0, r24
	HAVE_RUN_KEY_FLAG = 0;
     762:	80 91 c0 01 	lds	r24, 0x01C0
     766:	87 7f       	andi	r24, 0xF7	; 247
     768:	80 93 c0 01 	sts	0x01C0, r24
	MUSIC_START = 0;
     76c:	80 91 c0 01 	lds	r24, 0x01C0
     770:	8b 7f       	andi	r24, 0xFB	; 251
     772:	80 93 c0 01 	sts	0x01C0, r24
	RUN_FLAG=0;
     776:	80 91 c0 01 	lds	r24, 0x01C0
     77a:	8e 7f       	andi	r24, 0xFE	; 254
     77c:	80 93 c0 01 	sts	0x01C0, r24
	START_FLAG =0;
     780:	80 91 c0 01 	lds	r24, 0x01C0
     784:	8f 7e       	andi	r24, 0xEF	; 239
     786:	80 93 c0 01 	sts	0x01C0, r24
	REAL_TIME_FLAG=0;
     78a:	80 91 8c 02 	lds	r24, 0x028C
     78e:	8f 7b       	andi	r24, 0xBF	; 191
     790:	80 93 8c 02 	sts	0x028C, r24
	DL_REALY_OVER=0;
     794:	80 91 8c 02 	lds	r24, 0x028C
     798:	8f 7d       	andi	r24, 0xDF	; 223
     79a:	80 93 8c 02 	sts	0x028C, r24
	DL_OVER_FLAG=0;
     79e:	80 91 8c 02 	lds	r24, 0x028C
     7a2:	8f 7e       	andi	r24, 0xEF	; 239
     7a4:	80 93 8c 02 	sts	0x028C, r24
    UART_ERROR_FLAG=0;
     7a8:	80 91 8c 02 	lds	r24, 0x028C
     7ac:	87 7f       	andi	r24, 0xF7	; 247
     7ae:	80 93 8c 02 	sts	0x028C, r24
	RUN_FLAG=0;
     7b2:	80 91 c0 01 	lds	r24, 0x01C0
     7b6:	8e 7f       	andi	r24, 0xFE	; 254
     7b8:	80 93 c0 01 	sts	0x01C0, r24

    //*****************port initial***********************//
    DDRE  = 0x02;
     7bc:	82 e0       	ldi	r24, 0x02	; 2
     7be:	80 93 2d 00 	sts	0x002D, r24
    PORTE = 0xFD;
     7c2:	8d ef       	ldi	r24, 0xFD	; 253
     7c4:	80 93 2e 00 	sts	0x002E, r24
	DDRG  = 0x0F;
     7c8:	8f e0       	ldi	r24, 0x0F	; 15
     7ca:	80 93 33 00 	sts	0x0033, r24
	PORTG = 0x20;
     7ce:	80 e2       	ldi	r24, 0x20	; 32
     7d0:	80 93 34 00 	sts	0x0034, r24
    
    CloseOutputPwm( );
     7d4:	0e 94 f5 06 	call	0xdea <CloseOutputPwm>
	ClrPwmPort( );
     7d8:	0e 94 17 07 	call	0xe2e <ClrPwmPort>

	UARTInitial( );
     7dc:	0e 94 84 01 	call	0x308 <UARTInitial>
	SPI_MasterInit( );
     7e0:	0e 94 d0 0d 	call	0x1ba0 <SPI_MasterInit>
	//*****************fuction initial***********************//
	
    T0Init(); 
     7e4:	0e 94 06 04 	call	0x80c <T0Init>
	T1Init(); 
     7e8:	0e 94 8e 04 	call	0x91c <T1Init>
	T2Init(); 
     7ec:	0e 94 56 05 	call	0xaac <T2Init>

	PCIntInitial( );
     7f0:	0e 94 a3 05 	call	0xb46 <PCIntInitial>
    PwmPortInitial( );
     7f4:	0e 94 50 07 	call	0xea0 <PwmPortInitial>

    //*****************pwm initial***********************//
	PwmInitial( );
     7f8:	0e 94 26 07 	call	0xe4c <PwmInitial>
	DisposePwm( );
     7fc:	0e 94 6e 09 	call	0x12dc <DisposePwm>
	TransferStruct( );
     800:	0e 94 58 0b 	call	0x16b0 <TransferStruct>
	
	sei();
     804:	78 94       	sei
     806:	df 91       	pop	r29
     808:	cf 91       	pop	r28
     80a:	08 95       	ret

0000080c <T0Init>:
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void T0Init(void) 
{
     80c:	cf 93       	push	r28
     80e:	df 93       	push	r29
     810:	cd b7       	in	r28, 0x3d	; 61
     812:	de b7       	in	r29, 0x3e	; 62
	
	OCR0A   = 63;				      /* 8us*/
     814:	8f e3       	ldi	r24, 0x3F	; 63
     816:	80 93 47 00 	sts	0x0047, r24
    TCCR0A  = 8;                      /*CTC模式*/
     81a:	88 e0       	ldi	r24, 0x08	; 8
     81c:	80 93 44 00 	sts	0x0044, r24
	TIMSK0 |= (1<<OCIE0A);        	  /*中断允许*/
     820:	80 91 6e 00 	lds	r24, 0x006E
     824:	82 60       	ori	r24, 0x02	; 2
     826:	80 93 6e 00 	sts	0x006E, r24
     82a:	df 91       	pop	r29
     82c:	cf 91       	pop	r28
     82e:	08 95       	ret

00000830 <T0Start>:

}


/************************************************************
 Function Name:  T2Start
 Function:       Timer0 start
 Paramenter:     None               
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void T0Start(void)
{
     830:	cf 93       	push	r28
     832:	df 93       	push	r29
     834:	cd b7       	in	r28, 0x3d	; 61
     836:	de b7       	in	r29, 0x3e	; 62
    TCNT0   = 0;
     838:	10 92 46 00 	sts	0x0046, r1
	TCCR0A  |= 0x01;                  /*设置定时器的分频值为1分频并开始*/
     83c:	80 91 44 00 	lds	r24, 0x0044
     840:	81 60       	ori	r24, 0x01	; 1
     842:	80 93 44 00 	sts	0x0044, r24
     846:	df 91       	pop	r29
     848:	cf 91       	pop	r28
     84a:	08 95       	ret

0000084c <T0Close>:
} 
                                    

/************************************************************
 Function Name:  T2Close
 Function:       Timer0 close
 Paramenter:     None               
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void T0Close(void)
{
     84c:	cf 93       	push	r28
     84e:	df 93       	push	r29
     850:	cd b7       	in	r28, 0x3d	; 61
     852:	de b7       	in	r29, 0x3e	; 62
	TCCR0A  &= 0xF8;                  /*关闭定时器*/
     854:	88 ef       	ldi	r24, 0xF8	; 248
     856:	90 91 44 00 	lds	r25, 0x0044
     85a:	89 23       	and	r24, r25
     85c:	80 93 44 00 	sts	0x0044, r24
     860:	df 91       	pop	r29
     862:	cf 91       	pop	r28
     864:	08 95       	ret

00000866 <__vector_10>:
} 



/************************************************************
 Function Name:  SIGNAL(TIMER0_COMPA_vect)
 Function:       Timer0 interrupt
 Paramenter:     TIMER0_COMPA_vect               
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/

SIGNAL(TIMER0_COMP_vect)  
{
     866:	1f 92       	push	r1
     868:	0f 92       	push	r0
     86a:	0f b6       	in	r0, 0x3f	; 63
     86c:	0f 92       	push	r0
     86e:	11 24       	eor	r1, r1
     870:	8f 93       	push	r24
     872:	cf 93       	push	r28
     874:	df 93       	push	r29
     876:	cd b7       	in	r28, 0x3d	; 61
     878:	de b7       	in	r29, 0x3e	; 62
    PwmStepCounter++;
     87a:	80 91 b0 02 	lds	r24, 0x02B0
     87e:	8f 5f       	subi	r24, 0xFF	; 255
     880:	80 93 b0 02 	sts	0x02B0, r24
     884:	df 91       	pop	r29
     886:	cf 91       	pop	r28
     888:	8f 91       	pop	r24
     88a:	0f 90       	pop	r0
     88c:	0f be       	out	0x3f, r0	; 63
     88e:	0f 90       	pop	r0
     890:	1f 90       	pop	r1
     892:	18 95       	reti

00000894 <T1Set0p5ms>:
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void T1Set0p5ms(void) 
{
     894:	cf 93       	push	r28
     896:	df 93       	push	r29
     898:	cd b7       	in	r28, 0x3d	; 61
     89a:	de b7       	in	r29, 0x3e	; 62
	TCNT1   = 0;
     89c:	10 92 85 00 	sts	0x0085, r1
     8a0:	10 92 84 00 	sts	0x0084, r1
	OCR1A   = 63;				      /* 0.5ms*/
     8a4:	8f e3       	ldi	r24, 0x3F	; 63
     8a6:	90 e0       	ldi	r25, 0x00	; 0
     8a8:	90 93 89 00 	sts	0x0089, r25
     8ac:	80 93 88 00 	sts	0x0088, r24
     8b0:	df 91       	pop	r29
     8b2:	cf 91       	pop	r28
     8b4:	08 95       	ret

000008b6 <T1Set2ms>:

}
/************************************************************
 Function Name:  T2Init
 Function:       Timer0 initial
 Paramenter:     None               
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void T1Set2ms(void) 
{
     8b6:	cf 93       	push	r28
     8b8:	df 93       	push	r29
     8ba:	cd b7       	in	r28, 0x3d	; 61
     8bc:	de b7       	in	r29, 0x3e	; 62
	TCNT1   = 0;
     8be:	10 92 85 00 	sts	0x0085, r1
     8c2:	10 92 84 00 	sts	0x0084, r1
	OCR1A   = 255;				      /* 2ms*/
     8c6:	8f ef       	ldi	r24, 0xFF	; 255
     8c8:	90 e0       	ldi	r25, 0x00	; 0
     8ca:	90 93 89 00 	sts	0x0089, r25
     8ce:	80 93 88 00 	sts	0x0088, r24
     8d2:	df 91       	pop	r29
     8d4:	cf 91       	pop	r28
     8d6:	08 95       	ret

000008d8 <T1Set8p7ms>:
	
}
/************************************************************
 Function Name:  T2Init
 Function:       Timer0 initial
 Paramenter:     None               
 Return value:   None                     
 Author:         Chen yuan zhen May.30.2008 
*************************************************************/
void T1Set8p7ms(void) 
{
     8d8:	cf 93       	push	r28
     8da:	df 93       	push	r29
     8dc:	cd b7       	in	r28, 0x3d	; 61
     8de:	de b7       	in	r29, 0x3e	; 62
	TCNT1   = 0;
     8e0:	10 92 85 00 	sts	0x0085, r1
     8e4:	10 92 84 00 	sts	0x0084, r1
	OCR1A   = 1200;				      /* 8.75ms*/
     8e8:	80 eb       	ldi	r24, 0xB0	; 176
     8ea:	94 e0       	ldi	r25, 0x04	; 4

⌨️ 快捷键说明

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