我想对从属设备执行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]);
...
...
答案 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;
}
}