Trích:
Nguyên văn bởi vandungevn
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
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