4
延迟时间); vs if(millis()-previous> time); 和漂移
经历一个老项目,我在两个Arduino Due上有代码,看起来像这样 void loop() { foo(); delay(time); } 考虑到大多数有关使用的文献,delay();我将其重新编码为 void loop() { static unsigned long PrevTime; if(millis()-PrevTime>time) { foo(); PrevTime=millis(); } } 但是,这似乎造成了以下情况:这两个设备在一段时间内会漂移,而此前它们并没有 我的问题是双重的: 为什么会if(millis()-PrevTime>time)引起更多的漂移 delay(time)呢? 有没有办法防止这种漂移而无需返回delay(time)?