View Single Post
Old 07-05-2008, 04:57 AM   #21
tyhon
Đệ tử 1 túi
 
Tham gia ngày: Nov 2007
Bài gửi: 22
:
Trích:
Nguyên văn bởi vandungevn View Post
ADC trong PIC có 10bit. adcHI là chứa 5 bits cao của 10 bits, còn adcLO chứa 5 bit thấp như vậy là ghép lại thành 10 bit ad rồi đó:d. còn '>>' có nghĩa là dịch trai 1111100000 >> 5 = 0000011111 => giá trị của adcHI được đưa vào 1 byte là 00011111, như vậy có 5 bit cao của adc 10 bit . x 0x1f, giữ nguyên giá trị của 5 bit cao để khỏi lẫn giá trị của byte thấp, em thử lấy 1 phép toán nào đó làm ví dụ thì thấy ngay. adcLO việc bit 7 của adcLO được bật để phân biệt adcHI và adcLO khi chuyển lên nếu ko thì ko biết mình nhận nó là byte thấp hay byte cao.
Anh cho em hỏi:
code
Trích:
Nguyên văn bởi tyhon View Post
while(TRUE)
{
adcValue = read_adc(); // Get ADC reading

adcHI = (char)((adcValue >> 5)& 0x1f);
adcLO = (char)((adcValue & 0x1f)|0x80);

putc(adcHI);
putc(adcLO);

delay_ms(10); // Preset delay, repeat every 10ms
}
}.
Thế ở đây không biết dịch bit để làm gì anh nhỉ ? Tại sao không cho adcHI nhận luôn 5 bit cao của adc trong PIC

thay đổi nội dung bởi: tyhon, 07-05-2008 lúc 05:07 AM.
tyhon vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn