Ðề tài: Bit Va Byte
View Single Post
Old 11-07-2009, 01:18 AM   #9
cskiller
Đệ tử 4 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 89
:
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:
...
#define   BITS_COUNT  256
int8 count=0; // Bat dau tai vi tri byte 0
int8 buff[BITS_COUNT/8];  // Dung mat 32 Bytes
....
void SetBitData(int1 value)  // Goi ham moi 10us de luu gia tri cua bit doc duoc 
{
    // Gan lan luot tung bit (5 bits cao xac dinh byte va 3 bits thap xac dinh bit)
    if(value==1) buff[count>>3]|=(1<<(count&0x07));
    else buff[count>>3]&=(~(1<<(count&0x07)));
    if(++count==0){
         // Nhan du 256 bits va thuc hien truyen du lieu 32 bytes ve may tinh
         // Khong can reset count ve 0 vi tu dong tran so 1 byte
    }
}
...
__________________
Quang báo RG/RGB 6/8/12/16 bits màu
Phone No: 0905.034.086
Email: lmquyen@gmail.com

thay đổi nội dung bởi: cskiller, 11-07-2009 lúc 02:58 PM.
cskiller vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn