Sto provando a bit bang dati DMX e questo richiede 4 impulsi. Non avendo molta fortuna con i risultati, sto verificando per vedere quanto è bravo l'Arduino a ritardare ... Sembra essere abbastanza terribile.
Ecco un breve test che ho fatto:
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
}
E i risultati:
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
Sono rimasto un po 'scioccato da quanto sia grave la sua precisione. È il doppio del tempo che volevo ritardare, ma non è nemmeno coerente con il punto in cui avrei potuto dividere per 2!
C'è qualcosa che posso fare per ottenere risultati corretti e coerenti?