我正在尝试爆炸DMX数据,这需要4us脉冲。我正在检查结果是否运气不佳,以查看Arduino在延迟方面的表现如何……似乎非常糟糕。
我做了一个快速的小测试:
unsigned long ptime;
void setup() {
Serial.begin(9600);
}
void loop() {
ptime = micros();
delayMicroseconds(4);
Serial.println(micros() - ptime);
delay(1000); //just to keep the serial monitor from going nuts
}
结果:
8 4 8 4 4 4 4 4 8 8 8 8 4 8 8 4 4 8 4 4 4 4 8 8 8 4 8 4
我对它的准确性有多差感到震惊。这是我想延迟的时间的两倍,但是甚至与我只能除以2的位置也不相符!
我能做些什么以获得正确,一致的结果?