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;
for(i=0;i<8;i++)
{
shift_left(x,1,input(pin_B1)
delay_us(9);
}