📄 main.lss
字号:
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 + -