PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 19-03-2010, 11:00 AM   #12
tbk_05
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 14
:
Trích:
Nguyên văn bởi trai_xq View Post
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+value*256;
OK!
tbk_05 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 07:47 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam