summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-09-05 15:37:22 +1000
committerjacqueline <me@jacqueline.id.au>2023-09-05 15:37:22 +1000
commit020d42d43156423488df4ea4538f4952a3c97c48 (patch)
tree97d022ff83eb61d3c3923b89532e84ba3a8c35e0 /src/drivers
parentf0d82cfb0959c48e251246aa988989e1cfddc4af (diff)
downloadtangara-fw-020d42d43156423488df4ea4538f4952a3c97c48.tar.gz
Be tolerant of SAMD timeouts
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/samd.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/drivers/samd.cpp b/src/drivers/samd.cpp
index 176da241..fe621993 100644
--- a/src/drivers/samd.cpp
+++ b/src/drivers/samd.cpp
@@ -78,7 +78,10 @@ auto Samd::UpdateChargeStatus() -> void {
.write_addr(kAddress, I2C_MASTER_READ)
.read(&raw_res, I2C_MASTER_NACK)
.stop();
- ESP_ERROR_CHECK(transaction.Execute());
+ esp_err_t res = transaction.Execute();
+ if (res != ESP_OK) {
+ return;
+ }
uint8_t usb_state = raw_res & 0b11;
uint8_t charge_state = (raw_res >> 2) & 0b111;
@@ -120,7 +123,10 @@ auto Samd::UpdateUsbStatus() -> void {
.write_addr(kAddress, I2C_MASTER_READ)
.read(&raw_res, I2C_MASTER_NACK)
.stop();
- ESP_ERROR_CHECK(transaction.Execute());
+ esp_err_t res = transaction.Execute();
+ if (res != ESP_OK) {
+ return;
+ }
if (!(raw_res & 0b1)) {
usb_status_ = UsbStatus::kDetached;