From a450d80ec5647af07d4dcf8a123e45285d010c83 Mon Sep 17 00:00:00 2001 From: whowechina Date: Mon, 2 Dec 2024 14:50:04 +0800 Subject: [PATCH] Fix ToF i2c write timing --- Production/Firmware/geki_pico.uf2 | Bin 188928 -> 189440 bytes firmware/src/vl53l0x.c | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Production/Firmware/geki_pico.uf2 b/Production/Firmware/geki_pico.uf2 index e2fccf66559ae791b7f4bc423f53cbbb7a1423c2..b9f4b460f99c7b2fdceb8bcb1e8a8353a43f2294 100644 GIT binary patch delta 22049 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 delta 21736 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 sizeof(cache) - 1) { + return; + } + memcpy(cache + 1, src, len); + i2c_write_blocking_until(I2C_PORT, I2C_ADDR, cache, len + 1, false, time_us_64() + IO_TIMEOUT_US * len); } static void read_many(uint8_t reg, uint8_t *dst, uint8_t len)