inky73: Add busy wait timeout.

Add a timeout to fix Inky 7.3" hanging on batteries.

Basically assumes the update has finished if it takes > 45s, and allows a subsequent attempt
rather than hanging indefinitely.

Raised, texted and fixed by w3stbam: https://github.com/pimoroni/pimoroni-pico/pull/900

Rewritten as mentioned in the PR.
patch-inky7-update-timeout
Phil Howard 2024-03-30 19:50:44 +00:00 zatwierdzone przez Phil Howard
rodzic f1ea35fbbf
commit 8cf276b992
2 zmienionych plików z 4 dodań i 3 usunięć

Wyświetl plik

@ -47,8 +47,9 @@ namespace pimoroni {
return !(sr.read() & 128); return !(sr.read() & 128);
} }
void Inky73::busy_wait() { void Inky73::busy_wait(uint timeout_ms) {
while(is_busy()) { absolute_time_t timeout = make_timeout_time_ms(timeout_ms);
while(is_busy() && !time_reached(timeout)) {
tight_loop_contents(); tight_loop_contents();
} }
} }

Wyświetl plik

@ -70,7 +70,7 @@ namespace pimoroni {
// Methods // Methods
//-------------------------------------------------- //--------------------------------------------------
public: public:
void busy_wait(); void busy_wait(uint timeout_ms=45000);
void reset(); void reset();
void power_off(); void power_off();