![]() |
Bit Va Byte
cac bac cho e hoi ti.
E co 400 bien kieu int1 va e muon ghep no thanh 50 bien kieu int thi lam the nao nhi? thanks! Bạn phải gõ có dấu, mình đã nhắc ở đây, có vẻ như bạn ko đọc: http://www.picvietnam.com/forum/show...8&postcount=68 |
Theo ý kiến của mình thì :
Nếu bạn dùng CCS thì int1 là biến 1 bit,vậy phải cần dùng 50 biến int8 (8 bit) để ghép : Code:
int1 T[]; (T là tập hợp giá trị biến 1 bit cần ghép) |
Trích:
co j mong anh e chi ju[. thanks! Nội quy diễn đàn bắt buộc phải gõ có dấu, mình đã nhắc ở đây, có vẻ như bạn ko đọc: http://www.picvietnam.com/forum/show...8&postcount=68 |
"10us đọc giá trị" thời gian đâu để PIC làm việc # nữa ta
|
Trích:
|
Trích:
|
Trích:
|
Trích:
Code:
... |
Tôi khuyên bạn nên collect 256 bits là tối ưu nhất thay vì 400 để đảm bảo với thời gian 10us, vì với 256 bits có thể dùng 1 byte để count và việc shift bit có thời gian thực thi nhanh hơn rất nhiều:
Code:
... |
Cách đơn giản nhất là dùng hàm shift_right, shift_left của CCS.
Tuy nhiên lúc này bạn phải khai báo mảng chứa dữ liệu của bạn kiểu char. Do đó, số lượng bit tối đa có thể dịch phụ thuộc vào độ lớn mảng mà CCS cho phép. |
Trích:
|
Theo tôi thì thế này : mỗi 10us bạn đọc giá trị 1 lần bạn dịch bít đó vào biến x(kiểu byte) , sau 8 lần thì ghi lưu biến x đó vào byte thứ 1 , cứ thế mà tiếp tục đến byte thứ 50. Như vậy bạn chỉ tốn khoản 51 byte mà thôi . Kô cần phải khai báo mãng 400 bit đâu .
Trong CCS có hỗ trợ cho bạn 2 hàm dịch bit (shift_left và shift_right) ví dụ : đọc 8 bit từ ngõ vào B1 (mỗi lần đọc cách nhau là 10us) Code:
unsigned int x,i; |
Múi giờ GMT. Hiện tại là 10:51 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam