fix esp8266 remote_transmitter using incorrect timings (#1465)

* replace delay by delayMicroseconds in delay_microseconds_accurate

* Use delay(0) to let wifi and os function run

* Linting

* Remove unneeded delayMicroseconds, keep it for low usec

* Avoid micros() overflow issue
This commit is contained in:
hcoohb 2021-02-02 00:59:27 +10:00 committed by GitHub
parent 4eeb111fa3
commit f402c89539
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -171,15 +171,17 @@ uint8_t crc8(uint8_t *data, uint8_t len) {
}
return crc;
}
void delay_microseconds_accurate(uint32_t usec) {
if (usec == 0)
return;
if (usec <= 16383UL) {
if (usec < 5000UL) {
delayMicroseconds(usec);
} else {
delay(usec / 1000UL);
delayMicroseconds(usec % 1000UL);
return;
}
uint32_t start = micros();
while (micros() - start < usec) {
delay(0);
}
}