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

📄 main.lss

📁 the code connect Atmega 32 uC to 1 module Bluetooth ARF32
💻 LSS
📖 第 1 页 / 共 5 页
字号:
		while ( !(UCSRA & (1<<RXC)) );
 126:	5f 9b       	sbis	0x0b, 7	; 11
 128:	fe cf       	rjmp	.-4      	; 0x126 <Get_Data_From_Module+0x18>
		
		/* Get and return received data from buffer */
		return UDR;
 12a:	8c b1       	in	r24, 0x0c	; 12
		Receive_Cmd[2] = Receive_Byte_From_UART(); 	//op-code
 12c:	80 93 62 00 	sts	0x0062, r24
/*----Nhan 1 byte truyen ve cong USART----*/
/*----------------------------------------*/
char Receive_Byte_From_UART( void )
	{
		/* Wait for data to be received */
		while ( !(UCSRA & (1<<RXC)) );
 130:	5f 9b       	sbis	0x0b, 7	; 11
 132:	fe cf       	rjmp	.-4      	; 0x130 <Get_Data_From_Module+0x22>
		
		/* Get and return received data from buffer */
		return UDR;
 134:	8c b1       	in	r24, 0x0c	; 12
		Receive_Cmd[3] = Receive_Byte_From_UART(); 	//2 byte Data length
 136:	80 93 63 00 	sts	0x0063, r24
/*----Nhan 1 byte truyen ve cong USART----*/
/*----------------------------------------*/
char Receive_Byte_From_UART( void )
	{
		/* Wait for data to be received */
		while ( !(UCSRA & (1<<RXC)) );
 13a:	5f 9b       	sbis	0x0b, 7	; 11
 13c:	fe cf       	rjmp	.-4      	; 0x13a <Get_Data_From_Module+0x2c>
		
		/* Get and return received data from buffer */
		return UDR;
 13e:	8c b1       	in	r24, 0x0c	; 12
		Receive_Cmd[4] = Receive_Byte_From_UART();
 140:	80 93 64 00 	sts	0x0064, r24
 144:	a5 e0       	ldi	r26, 0x05	; 5
 146:	b0 e0       	ldi	r27, 0x00	; 0
 148:	08 c0       	rjmp	.+16     	; 0x15a <Get_Data_From_Module+0x4c>
/*----Nhan 1 byte truyen ve cong USART----*/
/*----------------------------------------*/
char Receive_Byte_From_UART( void )
	{
		/* Wait for data to be received */
		while ( !(UCSRA & (1<<RXC)) );
 14a:	5f 9b       	sbis	0x0b, 7	; 11
 14c:	fe cf       	rjmp	.-4      	; 0x14a <Get_Data_From_Module+0x3c>
		
		/* Get and return received data from buffer */
		return UDR;
 14e:	8c b1       	in	r24, 0x0c	; 12

		for (i=0,j=5; i<Receive_Cmd[3]+2; i++, j++)	//Doc tiep cac byte Data va 1 byte ETX
			Receive_Cmd[j] = Receive_Byte_From_UART();
 150:	fd 01       	movw	r30, r26
 152:	e0 5a       	subi	r30, 0xA0	; 160
 154:	ff 4f       	sbci	r31, 0xFF	; 255
 156:	80 83       	st	Z, r24
		Receive_Cmd[1] = Receive_Byte_From_UART(); 	//Packet 
		Receive_Cmd[2] = Receive_Byte_From_UART(); 	//op-code
		Receive_Cmd[3] = Receive_Byte_From_UART(); 	//2 byte Data length
		Receive_Cmd[4] = Receive_Byte_From_UART();

		for (i=0,j=5; i<Receive_Cmd[3]+2; i++, j++)	//Doc tiep cac byte Data va 1 byte ETX
 158:	11 96       	adiw	r26, 0x01	; 1
 15a:	80 91 63 00 	lds	r24, 0x0063
 15e:	90 e0       	ldi	r25, 0x00	; 0
 160:	01 96       	adiw	r24, 0x01	; 1
 162:	9d 01       	movw	r18, r26
 164:	25 50       	subi	r18, 0x05	; 5
 166:	30 40       	sbci	r19, 0x00	; 0
 168:	82 17       	cp	r24, r18
 16a:	93 07       	cpc	r25, r19
 16c:	74 f7       	brge	.-36     	; 0x14a <Get_Data_From_Module+0x3c>
			Receive_Cmd[j] = Receive_Byte_From_UART();
		
		/*Neu byte cuoi cung khac ETX hoac byte dau tien khac STX-->FALSE*/
		if ((Receive_Cmd[--j] != ETX) || (Receive_Cmd[0] != STX)) return FALSE;
 16e:	a1 5a       	subi	r26, 0xA1	; 161
 170:	bf 4f       	sbci	r27, 0xFF	; 255
 172:	8c 91       	ld	r24, X
 174:	83 30       	cpi	r24, 0x03	; 3
 176:	39 f4       	brne	.+14     	; 0x186 <Get_Data_From_Module+0x78>
 178:	90 e0       	ldi	r25, 0x00	; 0
 17a:	80 91 60 00 	lds	r24, 0x0060
 17e:	82 30       	cpi	r24, 0x02	; 2
 180:	19 f4       	brne	.+6      	; 0x188 <Get_Data_From_Module+0x7a>
 182:	91 e0       	ldi	r25, 0x01	; 1
 184:	01 c0       	rjmp	.+2      	; 0x188 <Get_Data_From_Module+0x7a>
 186:	90 e0       	ldi	r25, 0x00	; 0
		else return TRUE;
	}	
 188:	89 2f       	mov	r24, r25
 18a:	08 95       	ret

0000018c <Search_Device>:
/*----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)) );
 18c:	5d 9b       	sbis	0x0b, 5	; 11
 18e:	fe cf       	rjmp	.-4      	; 0x18c <Search_Device>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 190:	82 e0       	ldi	r24, 0x02	; 2
 192:	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)) );
 194:	5d 9b       	sbis	0x0b, 5	; 11
 196:	fe cf       	rjmp	.-4      	; 0x194 <Search_Device+0x8>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 198:	82 e5       	ldi	r24, 0x52	; 82
 19a:	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)) );
 19c:	5d 9b       	sbis	0x0b, 5	; 11
 19e:	fe cf       	rjmp	.-4      	; 0x19c <Search_Device+0x10>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1a0:	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)) );
 1a2:	5d 9b       	sbis	0x0b, 5	; 11
 1a4:	fe cf       	rjmp	.-4      	; 0x1a2 <Search_Device+0x16>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1a6:	83 e0       	ldi	r24, 0x03	; 3
 1a8:	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)) );
 1aa:	5d 9b       	sbis	0x0b, 5	; 11
 1ac:	fe cf       	rjmp	.-4      	; 0x1aa <Search_Device+0x1e>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1ae:	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)) );
 1b0:	5d 9b       	sbis	0x0b, 5	; 11
 1b2:	fe cf       	rjmp	.-4      	; 0x1b0 <Search_Device+0x24>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1b4:	85 e5       	ldi	r24, 0x55	; 85
 1b6:	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)) );
 1b8:	5d 9b       	sbis	0x0b, 5	; 11
 1ba:	fe cf       	rjmp	.-4      	; 0x1b8 <Search_Device+0x2c>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1bc:	8a e0       	ldi	r24, 0x0A	; 10
 1be:	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)) );
 1c0:	5d 9b       	sbis	0x0b, 5	; 11
 1c2:	fe cf       	rjmp	.-4      	; 0x1c0 <Search_Device+0x34>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1c4:	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)) );
 1c6:	5d 9b       	sbis	0x0b, 5	; 11
 1c8:	fe cf       	rjmp	.-4      	; 0x1c6 <Search_Device+0x3a>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1ca:	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)) );
 1cc:	5d 9b       	sbis	0x0b, 5	; 11
 1ce:	fe cf       	rjmp	.-4      	; 0x1cc <Search_Device+0x40>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 1d0:	83 e0       	ldi	r24, 0x03	; 3
 1d2:	8c b9       	out	0x0c, r24	; 12
		Send_Byte_To_UART(0x55);	//Check sum
		Send_Byte_To_UART(0x0A);	//Duration=10s
		Send_Byte_To_UART(0x00);	//Unlimited	responses
		Send_Byte_To_UART(0x00);	//General inquiry
		Send_Byte_To_UART(ETX);		//byte End ETX
	}
 1d4:	08 95       	ret

000001d6 <Get_Device_Found>:
//------------------------------------------------------------------------------------
/*---Ham tra ve thong tin cac thiet bi tim kiem duoc
	Thong tin bao gom Address, IP(device class)---*/
	
void Get_Device_Found(unsigned char *bd_addr, unsigned char *bd_ip)
	{
 1d6:	fc 01       	movw	r30, r24
 1d8:	db 01       	movw	r26, r22
		bd_addr[0] = Receive_Cmd[6];
 1da:	80 91 66 00 	lds	r24, 0x0066
 1de:	80 83       	st	Z, r24
		bd_addr[1] = Receive_Cmd[7];
 1e0:	80 91 67 00 	lds	r24, 0x0067
 1e4:	81 83       	std	Z+1, r24	; 0x01
		bd_addr[2] = Receive_Cmd[8];
 1e6:	80 91 68 00 	lds	r24, 0x0068
 1ea:	82 83       	std	Z+2, r24	; 0x02
		bd_addr[3] = Receive_Cmd[9];
 1ec:	80 91 69 00 	lds	r24, 0x0069
 1f0:	83 83       	std	Z+3, r24	; 0x03
		bd_addr[4] = Receive_Cmd[10];
 1f2:	80 91 6a 00 	lds	r24, 0x006A
 1f6:	84 83       	std	Z+4, r24	; 0x04
		bd_addr[5] = Receive_Cmd[11];
 1f8:	80 91 6b 00 	lds	r24, 0x006B
 1fc:	85 83       	std	Z+5, r24	; 0x05
		
		bd_ip[0] = Receive_Cmd[12];
 1fe:	80 91 6c 00 	lds	r24, 0x006C
 202:	8c 93       	st	X, r24
		bd_ip[1] = Receive_Cmd[13];
 204:	80 91 6d 00 	lds	r24, 0x006D
 208:	11 96       	adiw	r26, 0x01	; 1
 20a:	8c 93       	st	X, r24
 20c:	11 97       	sbiw	r26, 0x01	; 1
		bd_ip[2] = Receive_Cmd[13];
 20e:	80 91 6d 00 	lds	r24, 0x006D
 212:	12 96       	adiw	r26, 0x02	; 2
 214:	8c 93       	st	X, r24
	}
 216:	08 95       	ret

00000218 <Search_Confirm>:
//--------------------------------------------------------------------------------------
/*---Ham Confirm qua trinh tim kiem cac thiet bi xung quanh---*/
unsigned char Search_Confirm(void)
	{
 218:	90 e0       	ldi	r25, 0x00	; 0
 21a:	80 91 66 00 	lds	r24, 0x0066
 21e:	88 23       	and	r24, r24
 220:	09 f4       	brne	.+2      	; 0x224 <Search_Confirm+0xc>
 222:	91 e0       	ldi	r25, 0x01	; 1
		if(Receive_Cmd[6]==ERROR_OK) return TRUE;	//Status=0x00 thi OK
		else return FALSE;
	}
 224:	89 2f       	mov	r24, r25
 226:	08 95       	ret

00000228 <Create_SDAP_Connection>:
//--------------------------------------------------------------------------------------	
/*---Ham Create SDAP Connection---*/
void Create_SDAP_Connection(unsigned char *bd_addr)
	{
 228:	ac 01       	movw	r20, 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)) );
 22a:	5d 9b       	sbis	0x0b, 5	; 11
 22c:	fe cf       	rjmp	.-4      	; 0x22a <Create_SDAP_Connection+0x2>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 22e:	82 e0       	ldi	r24, 0x02	; 2
 230:	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)) );
 232:	5d 9b       	sbis	0x0b, 5	; 11
 234:	fe cf       	rjmp	.-4      	; 0x232 <Create_SDAP_Connection+0xa>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 236:	82 e5       	ldi	r24, 0x52	; 82
 238:	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)) );
 23a:	5d 9b       	sbis	0x0b, 5	; 11
 23c:	fe cf       	rjmp	.-4      	; 0x23a <Create_SDAP_Connection+0x12>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 23e:	82 e3       	ldi	r24, 0x32	; 50
 240:	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)) );
 242:	5d 9b       	sbis	0x0b, 5	; 11
 244:	fe cf       	rjmp	.-4      	; 0x242 <Create_SDAP_Connection+0x1a>
	   
	   /*Dua du lieu ra cong USART*/
   	    UDR=data;
 246:	86 e0       	ldi	r24, 0x06	; 6
 248:	8c b9       	out	0x0c, r24	; 12
/*----Gui 1 byte du lieu qua cong USART----*/
/*--------------------------------------------*/

⌨️ 快捷键说明

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