![]() |
Cho em hỏi đoạn code này với
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 |
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é. |
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)) |
:)
- 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 ! |
giờ thì hỉu rùi thank các bác nhìu
|
Múi giờ GMT. Hiện tại là 07:00 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam