Saya mencoba menggigit data DMX dan itu membutuhkan pulsa 4us. Tidak memiliki banyak keberuntungan dengan hasil yang saya periksa untuk melihat seberapa baik Arduino menunda ... Tampaknya sangat mengerikan.
Inilah sedikit tes cepat yang saya lakukan:
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
}
Dan hasilnya:
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
Saya agak terkejut betapa buruk akurasinya. Ini dua kali lipat waktu yang saya ingin tunda, tetapi itu bahkan tidak konsisten di mana saya bisa membagi dengan 2!
Adakah yang bisa saya lakukan untuk mendapatkan hasil yang benar dan konsisten?