From 1a6767a76b533c2bbebefa54a0a4abfd5a591226 Mon Sep 17 00:00:00 2001 From: tako Date: Mon, 30 Sep 2024 10:30:02 +0900 Subject: [PATCH] USB PD: Improve requesting fixed voltage function (#137) thank you! --- .../usbpd_sink_request_voltage.ino | 5 ++++- libraries/USBPD_SINK/src/usbpd_sink.c | 7 ++++--- libraries/USBPD_SINK/src/usbpd_sink.h | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/libraries/USBPD_SINK/examples/usbpd_sink_request_voltage/usbpd_sink_request_voltage.ino b/libraries/USBPD_SINK/examples/usbpd_sink_request_voltage/usbpd_sink_request_voltage.ino index 6193386..d9d82ab 100644 --- a/libraries/USBPD_SINK/examples/usbpd_sink_request_voltage/usbpd_sink_request_voltage.ino +++ b/libraries/USBPD_SINK/examples/usbpd_sink_request_voltage/usbpd_sink_request_voltage.ino @@ -20,7 +20,10 @@ void loop() { if(usbpd_sink_get_ready()) { - usbpd_sink_set_request_fixed_voltage(setVoltage); + if(usbpd_sink_set_request_fixed_voltage(setVoltage) == false) + { + Serial.printf("unsupported voltage\r\n"); + } } // button, myIndex++ diff --git a/libraries/USBPD_SINK/src/usbpd_sink.c b/libraries/USBPD_SINK/src/usbpd_sink.c index 0292e38..82f166b 100644 --- a/libraries/USBPD_SINK/src/usbpd_sink.c +++ b/libraries/USBPD_SINK/src/usbpd_sink.c @@ -38,7 +38,7 @@ void usbpd_sink_clear_ready(void) pdControl_g.cc_USBPD_READY = 0; } -void usbpd_sink_set_request_fixed_voltage(Request_voltage_t requestVoltage) +bool usbpd_sink_set_request_fixed_voltage(Request_voltage_t requestVoltage) { uint16_t targetVoltage; switch (requestVoltage) @@ -73,11 +73,12 @@ void usbpd_sink_set_request_fixed_voltage(Request_voltage_t requestVoltage) if(pdControl_g.cc_FixedSourceCap[i].Voltage == targetVoltage) { pdControl_g.cc_SetPDONum = i+1; - return; + return true; } } - pdControl_g.cc_SetPDONum = (pdControl_g.cc_SourcePDONum - pdControl_g.cc_SourcePPSNum); + // unsupported voltage + return false; } void timer3_init(uint16_t arr, uint16_t psc) diff --git a/libraries/USBPD_SINK/src/usbpd_sink.h b/libraries/USBPD_SINK/src/usbpd_sink.h index 1672d04..12dcc27 100644 --- a/libraries/USBPD_SINK/src/usbpd_sink.h +++ b/libraries/USBPD_SINK/src/usbpd_sink.h @@ -5,6 +5,7 @@ extern "C" { #endif /* end of __cplusplus */ +#include #include "usbpd_def.h" // Register Bit Definition @@ -201,7 +202,7 @@ void usbpd_sink_process(void); uint8_t usbpd_sink_get_ready(void); void usbpd_sink_clear_ready(void); -void usbpd_sink_set_request_fixed_voltage(Request_voltage_t requestVoltage); +bool usbpd_sink_set_request_fixed_voltage(Request_voltage_t requestVoltage); #ifdef __cplusplus