私は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 8 8 8 4 8 4
精度の悪さにちょっとショックを受けました。それは私が遅らせたかった時間の2倍ですが、2で割ることができるところにさえ一貫していません!
正確で一貫した結果を得るために何かできることはありますか?