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

📄 main.lss

📁 the code connect Atmega 32 uC to 1 module Bluetooth ARF32
💻 LSS
📖 第 1 页 / 共 5 页
字号:
/*---Ham Establish SPP Connection---*/
void Create_SPP_Link(unsigned char *bd_addr,unsigned char local_port, unsigned char remote_port)	
	{
 32c:	dc 01       	movw	r26, r24
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 32e:	5d 9b       	sbis	0x0b, 5	; 11
 330:	fe cf       	rjmp	.-4      	; 0x32e <Create_SPP_Link+0x2>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 332:	82 e0       	ldi	r24, 0x02	; 2
 334:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 336:	5d 9b       	sbis	0x0b, 5	; 11
 338:	fe cf       	rjmp	.-4      	; 0x336 <Create_SPP_Link+0xa>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 33a:	82 e5       	ldi	r24, 0x52	; 82
 33c:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 33e:	5d 9b       	sbis	0x0b, 5	; 11
 340:	fe cf       	rjmp	.-4      	; 0x33e <Create_SPP_Link+0x12>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 342:	8a e0       	ldi	r24, 0x0A	; 10
 344:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 346:	5d 9b       	sbis	0x0b, 5	; 11
 348:	fe cf       	rjmp	.-4      	; 0x346 <Create_SPP_Link+0x1a>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 34a:	88 e0       	ldi	r24, 0x08	; 8
 34c:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 34e:	5d 9b       	sbis	0x0b, 5	; 11
 350:	fe cf       	rjmp	.-4      	; 0x34e <Create_SPP_Link+0x22>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 352:	1c b8       	out	0x0c, r1	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 354:	5d 9b       	sbis	0x0b, 5	; 11
 356:	fe cf       	rjmp	.-4      	; 0x354 <Create_SPP_Link+0x28>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 358:	84 e6       	ldi	r24, 0x64	; 100
 35a:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 35c:	5d 9b       	sbis	0x0b, 5	; 11
 35e:	fe cf       	rjmp	.-4      	; 0x35c <Create_SPP_Link+0x30>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 360:	6c b9       	out	0x0c, r22	; 12
 362:	20 e0       	ldi	r18, 0x00	; 0
 364:	30 e0       	ldi	r19, 0x00	; 0
		Send_Byte_To_UART(0x00);
		Send_Byte_To_UART(0x64);		//Check Sum
		Send_Byte_To_UART(local_port);
		
		for(int i=0; i<=5; i++)
		Send_Byte_To_UART(bd_addr[i]);
 366:	fd 01       	movw	r30, r26
 368:	e2 0f       	add	r30, r18
 36a:	f3 1f       	adc	r31, r19
 36c:	e0 81       	ld	r30, Z
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 36e:	5d 9b       	sbis	0x0b, 5	; 11
 370:	fe cf       	rjmp	.-4      	; 0x36e <Create_SPP_Link+0x42>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 372:	ec b9       	out	0x0c, r30	; 12
		Send_Byte_To_UART(0x08);		//Data Length=0x0008
		Send_Byte_To_UART(0x00);
		Send_Byte_To_UART(0x64);		//Check Sum
		Send_Byte_To_UART(local_port);
		
		for(int i=0; i<=5; i++)
 374:	2f 5f       	subi	r18, 0xFF	; 255
 376:	3f 4f       	sbci	r19, 0xFF	; 255
 378:	26 30       	cpi	r18, 0x06	; 6
 37a:	31 05       	cpc	r19, r1
 37c:	a1 f7       	brne	.-24     	; 0x366 <Create_SPP_Link+0x3a>
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 37e:	5d 9b       	sbis	0x0b, 5	; 11
 380:	fe cf       	rjmp	.-4      	; 0x37e <Create_SPP_Link+0x52>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 382:	4c b9       	out	0x0c, r20	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 384:	5d 9b       	sbis	0x0b, 5	; 11
 386:	fe cf       	rjmp	.-4      	; 0x384 <Create_SPP_Link+0x58>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 388:	83 e0       	ldi	r24, 0x03	; 3
 38a:	8c b9       	out	0x0c, r24	; 12
		Send_Byte_To_UART(bd_addr[i]);
		
		Send_Byte_To_UART(remote_port);
		Send_Byte_To_UART(ETX);
	}
 38c:	08 95       	ret

0000038e <SPP_Link_Confirm>:
//-----------------------------------------------------------------------------------------------
/*---Ham Create SPP Link Confirm---*/
unsigned char SPP_Link_Confirm(unsigned char *local_port)
	{
 38e:	fc 01       	movw	r30, r24
		*local_port = Receive_Cmd[7];
 390:	80 91 67 00 	lds	r24, 0x0067
 394:	80 83       	st	Z, r24
		if (Receive_Cmd[6]=ERROR_OK){return TRUE;}
 396:	10 92 66 00 	sts	0x0066, r1
		else {return FALSE;}
	}
 39a:	80 e0       	ldi	r24, 0x00	; 0
 39c:	08 95       	ret

0000039e <SPP_Link_Indication>:
//-----------------------------------------------------------------------------------------------
/*---Ham Establish SPP Link Indication---*/
unsigned char SPP_Link_Indication(unsigned char *remote_addr, unsigned char *local_port, unsigned char *remote_port)
	{	
 39e:	cf 93       	push	r28
 3a0:	df 93       	push	r29
 3a2:	eb 01       	movw	r28, r22
 3a4:	e7 e6       	ldi	r30, 0x67	; 103
 3a6:	f0 e0       	ldi	r31, 0x00	; 0
 3a8:	dc 01       	movw	r26, r24
		for(int i=0; i<=5;i++)
			remote_addr[i]=Receive_Cmd[7+i];
 3aa:	81 91       	ld	r24, Z+
 3ac:	8d 93       	st	X+, r24
	}
//-----------------------------------------------------------------------------------------------
/*---Ham Establish SPP Link Indication---*/
unsigned char SPP_Link_Indication(unsigned char *remote_addr, unsigned char *local_port, unsigned char *remote_port)
	{	
		for(int i=0; i<=5;i++)
 3ae:	80 e0       	ldi	r24, 0x00	; 0
 3b0:	ed 36       	cpi	r30, 0x6D	; 109
 3b2:	f8 07       	cpc	r31, r24
 3b4:	d1 f7       	brne	.-12     	; 0x3aa <SPP_Link_Indication+0xc>
			remote_addr[i]=Receive_Cmd[7+i];
		*local_port = Receive_Cmd[13];
 3b6:	80 81       	ld	r24, Z
 3b8:	88 83       	st	Y, r24
		*remote_port = Receive_Cmd[14];
 3ba:	81 81       	ldd	r24, Z+1	; 0x01
 3bc:	fa 01       	movw	r30, r20
 3be:	80 83       	st	Z, r24
 3c0:	90 e0       	ldi	r25, 0x00	; 0
 3c2:	80 91 66 00 	lds	r24, 0x0066
 3c6:	88 23       	and	r24, r24
 3c8:	09 f4       	brne	.+2      	; 0x3cc <SPP_Link_Indication+0x2e>
 3ca:	91 e0       	ldi	r25, 0x01	; 1
		if(Receive_Cmd[6]==ERROR_OK) return TRUE;
		else return FALSE;
	}
 3cc:	89 2f       	mov	r24, r25
 3ce:	df 91       	pop	r29
 3d0:	cf 91       	pop	r28
 3d2:	08 95       	ret

000003d4 <Send_Data_To_Remote>:

//-----------------------------------------------------------------------------------------------
/*---Ham Send Data o che do Master Command Mode----*/
void Send_Data_To_Remote(unsigned char local_port,unsigned char data_length,char *data)
	{
 3d4:	98 2f       	mov	r25, r24
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 3d6:	5d 9b       	sbis	0x0b, 5	; 11
 3d8:	fe cf       	rjmp	.-4      	; 0x3d6 <Send_Data_To_Remote+0x2>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 3da:	82 e0       	ldi	r24, 0x02	; 2
 3dc:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 3de:	5d 9b       	sbis	0x0b, 5	; 11
 3e0:	fe cf       	rjmp	.-4      	; 0x3de <Send_Data_To_Remote+0xa>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 3e2:	82 e5       	ldi	r24, 0x52	; 82
 3e4:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 3e6:	5d 9b       	sbis	0x0b, 5	; 11
 3e8:	fe cf       	rjmp	.-4      	; 0x3e6 <Send_Data_To_Remote+0x12>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 3ea:	8f e0       	ldi	r24, 0x0F	; 15
 3ec:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 3ee:	5d 9b       	sbis	0x0b, 5	; 11
 3f0:	fe cf       	rjmp	.-4      	; 0x3ee <Send_Data_To_Remote+0x1a>
		Send_Byte_To_UART(STX);					//Start
		Send_Byte_To_UART(REQ);					//Packet Type
		Send_Byte_To_UART(SPP_SEND_DATA);		//OPCODE
		Send_Byte_To_UART(data_length+3);		//2 byte payload length
 3f2:	6d 5f       	subi	r22, 0xFD	; 253
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 3f4:	6c b9       	out	0x0c, r22	; 12
 3f6:	63 50       	subi	r22, 0x03	; 3
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 3f8:	5d 9b       	sbis	0x0b, 5	; 11
 3fa:	fe cf       	rjmp	.-4      	; 0x3f8 <Send_Data_To_Remote+0x24>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 3fc:	1c b8       	out	0x0c, r1	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 3fe:	5d 9b       	sbis	0x0b, 5	; 11
 400:	fe cf       	rjmp	.-4      	; 0x3fe <Send_Data_To_Remote+0x2a>
		Send_Byte_To_UART(0x00);
		Send_Byte_To_UART(0x64+data_length);	//Check Sum
 402:	6c 59       	subi	r22, 0x9C	; 156
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 404:	6c b9       	out	0x0c, r22	; 12
 406:	64 56       	subi	r22, 0x64	; 100
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 408:	5d 9b       	sbis	0x0b, 5	; 11
 40a:	fe cf       	rjmp	.-4      	; 0x408 <Send_Data_To_Remote+0x34>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 40c:	9c b9       	out	0x0c, r25	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 40e:	5d 9b       	sbis	0x0b, 5	; 11
 410:	fe cf       	rjmp	.-4      	; 0x40e <Send_Data_To_Remote+0x3a>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 412:	6c b9       	out	0x0c, r22	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/
void Send_Byte_To_UART(char data )
	{
		/*Doi cho den khi UDRE=1,san sang de truyen du lieu	*/
	   while ( !( UCSRA & (1<<UDRE)) );
 414:	5d 9b       	sbis	0x0b, 5	; 11
 416:	fe cf       	rjmp	.-4      	; 0x414 <Send_Data_To_Remote+0x40>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 418:	1c b8       	out	0x0c, r1	; 12

⌨️ 快捷键说明

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