Questions tagged «timing»

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)?

2
pulseIn()的计时精度如何?
我一直在使用该pulseIn()函数来处理基于PWM的二进制数据编码。它非常适合区分长度明显不同的脉冲,例如500us与1500us。这就足以处理典型的红外遥控器。 但是,我想制作自己的IR系统,该系统可以使用2个以上的脉冲长度,以便可以更快地进行数据传输。理想情况下,我想使用8种不同的脉冲长度进行八进制编码(例如200us,400us,600us等)。 我注意到pulseIn()虽然(+/- 10%)返回的值有很大的不同。我希望至少其中一些是由红外发射器和接收器模块引入的,但是我没有足够的设备来验证这一点。 假设我可以减轻这种外部误差,是否pulseIn()有足够的精度来区分此类相似的脉冲?
8 pwm  pulsein  timing 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.