mirror of
https://github.com/esphome/esphome.git
synced 2026-09-16 09:38:42 +00:00
6cb131ce54b4150efb96790d339e5cf2460f84c5
Replace the poll-based busy-wait introduced in #15662 with a call to Arduino's 1-arg esp_delay(), which uses os_timer + esp_suspend to properly suspend the cont task for the requested duration. The busy-wait only yielded via optimistic_yield(1000) once 1 ms had elapsed since the last task switch, so short waits like delay(1) often finished without ever yielding. That starved the SDK and extended interrupt latency, breaking timing sensitive interrupt-driven code such as the ESP8266 software-serial RX path used by fingerprint_grow. esp_delay()'s 1-arg form does not itself call millis(), so the slow Arduino millis() body is not pulled into IRAM by this path; the --wrap=millis goal of #15662 is preserved. Fixes #16558
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
601 MiB
Languages
C++
55.8%
Python
43.6%
C
0.3%
JavaScript
0.2%
