2012-03-28 30 views
1

我想对从设备执行5次连续读取,并检查这5个读取结果是否均相等。如果不是,应再次调用 直到所有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]); 
    ... 
    ... 

回答

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; 
    } 
}