C程序 IO采集 按位提取

有16路开关信号,用中断的方式采集,采集中断的频次最快800HZ,采集结果在2个字节的寄存器中。现在需要分析每路开关信号的实时状态(波形),有什么办法把2个字节转换成16个BIt的方法,因为要按位分析。 我选用IO采集卡来做,有人说实现不了,必须用AD采集卡 来做。求方法,求讨论。

 这个简单,看如下函数
bool testbit(byte b, int n)
{
    int test = 1 << n;
        return (b & test) == test;
}
用这个函数可以知道b的第n位(从右往左数)是0还是1。

图片说明

16路波形