从设备的连续读取 - 最佳解决方案?

时间:2012-03-28 13:15:44

标签: c

我想对从属设备执行5次连续读取并检查是否 这5个读取结果都是相同的。如果不是,则应调用w1_read_state函数 再次,直到所有5个读取结果相等。什么是最好的解决方案?我开始使用这样的代码......

static w1_slave slave;
static int tmp[5];
unsigned int i;

for (i=0; i < sizeof tmp / sizeof char; i++)
    w1_read_state(&slave, &tmp[i]);
    ...
    ...

1 个答案:

答案 0 :(得分:2)

int last, consecutive;
w1_read_state(&slave, &last);
consecutive = 1;
while (consecutive < 5) {
    int tmp;
    w1_read_state(&slave, &tmp);
    if (tmp==last) {
        consecutive++;
    } else {
        last = tmp;
        consecutive = 1;
    }
}