View Full Version : Cho em hỏi đoạn code này với
leodalat
16-07-2011, 09:01 PM
Code này viết bằng MikroC Pro for Pic, em ko hiểu mấy dòng này các bác giải thích giúp em với
Đoạn này là code truyền chuỗi ra Usart
while (*str!='\0')
{
Uart1_Write(*str);
str++;
}
Đoạn này nữa
temp=noi_dung[9]-48;
temp<<=(noi_dung[7]-48);
temp1=~(1<<(noi_dung[7]-48));
PORTA=(PORTA&temp1)|temp;
while((i!=0x0d)||(j==0))
Cảm ơn mọi người nhiều
dazaiger
17-07-2011, 12:10 AM
while (*str!='\0') // lặp đến khi gặp kí tự hết chuỗi (gặp kí tự rỗng \0)
{
Uart1_Write(*str); //viết kí tự mà con trỏ str trỏ đến
str++;//Tăng con trỏ lên 1
}
//Đoạn code này là xuất một chuối kí tự ra UART sử dụng con trỏ
///////////////////////////////////////////////////////////////////////////
temp=noi_dung[9]-48; //chuyển kí tự noi_dung[9] sang số DEC sau đó gán vào biến temp
temp<<=(noi_dung[7]-48); //temp dịch trái noi_dung[7] bit
temp1=~(1<<(noi_dung[7]-48)); //noi_dung[7] dịch trái 1 bit sau đó lấy phần bù gán vào biến temp1
PORTA=(PORTA&temp1)|temp;
while((i!=0x0d)||(j==0))
Em giải thích như thế có gì sai các bác pro chỉnh lại nhé.
leodalat
17-07-2011, 01:52 PM
cảm ơn bác nhiều, nhưng còn mấy chỗ em chưa hiểu lắm
temp=noi_dung[9]-48; //chuyển kí tự noi_dung[9] sang số DEC sau đó gán vào biến temp ----> số DEC là số gì vậy bác ?
temp1=~(1<<(noi_dung[7]-48)); //noi_dung[7] dịch trái 1 bit sau đó lấy phần bù gán vào biến temp1 ---------> bác giải thích giúp em phần bù là phần như thế nào ?
còn 2 dòng này nữa
PORTA=(PORTA&temp1)|temp;
while((i!=0x0d)||(j==0))
haohao
21-07-2011, 06:22 PM
:)
- DEC là số thập phân
- 1 dich trái (noi_dung[7]-48) bit chứ ko pải ngược như bạn nói.
-~() là đảo tất cả các bit rồi gán vào temp
Còn 2 dòng dưới chỉ là phép toán logic thôi.
Chúc vui !
leodalat
22-07-2011, 01:01 PM
giờ thì hỉu rùi thank các bác nhìu
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.