|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
|
Ðiều Chỉnh | Xếp Bài |
29-12-2009, 08:54 AM | #1 |
Đệ tử 2 túi
Tham gia ngày: Nov 2009
Bài gửi: 27
: |
hỏi về VD 5_2 của anh Nam
chào các bác trên diễn đàn!
dưới đây là đoạn code trong vd5-2 của anh Nam: while (1) { if (flag) { //Neu co ket qua moi thi xuat ket qua idx = (ADCValue >> 8); //Nibble cao nhat (chi co 2 bit) U1TXREG = HexTable[idx]; //Chuyen thanh ky tu tuong ung while (!U1STAbits.TRMT); //Cho den khi truyen xong ky tu idx = ((ADCValue >> 4) & 0x000F); //Nibble thu hai U1TXREG = HexTable[idx]; //Chuyen thanh ky tu tuong ung while (!U1STAbits.TRMT); //Cho den khi truyen xong ky tu idx = (ADCValue & 0x000F); //Nibble thap nhat U1TXREG = HexTable[idx]; //Chuyen thanh ky tu tuong ung while (!U1STAbits.TRMT); //Cho den khi truyen xong ky tu U1TXREG = 0x0A; //Cap ky tu CR, LF while (!U1STAbits.TRMT); //Cho den khi truyen xong ky tu U1TXREG = 0x0D; flag = 0; //Xoa co bao hieu co ket qua moi }; }; theo em hiểu như thế này ko biết có đúng ko? giả sử ADCvalue = 0x037f ban đầu ta lấy 2 bit cao nhất tức là idx =0x0003 ta lấy 4 bit tiếp theo idx= 0x0007 và 4 bit cuối idx = 0x000f. vậy ta sẽ gửi 3 byte lên máy tính, nhưng tai sao ta không gửi U1TXREG = idx mà phải sử dụng U1TXREG = HexTable[idx]? tại sao ta lại phải truyền thêm hai ký tự CR và LF? |
|
|