Trích:
Nguyên văn bởi trai_xq
Theo mình nghỉ thì như thế này, mổi ADC 10bit chia thành 2 byte:
unsigned int16 value, value1,value2;
//-----------------
value=read_adc();
value1=value&255;//max cua vlue1 la 255
value2=value&768;//max cua value2 la 768, nhu vay thi > 255=1byte
delay_ms(20);
//value1+value2=1023
Sau đó truyền hai byte đó lên, nhưng không biết value2 có thể truyền được không bởi vì nó lớn hơn 255. Như vậy phải giải quyết như thế nào, mong anh cskiller có thể giúp đỡ được không a.?
|
Mình có cách giải quyết rồi, là như thế này:
unsigned int16 value, value1,value2;
//-----------------
value=read_adc();
value1=value&255;//max cua vlue1 la 255
value2=value&768;//max cua value2 la 768, nhu vay thi > 255=1byte
delay_ms(20);
//value1+value2=1023
Đoạn chương trình trên bạn sẻ gửi lên 2 byte là value1 và value2/256
Trên c# bạn sẻ nhận lai 2 byte đó như sau:
ADC10bit=value1+value2*256;
OK!