From f72dd3b7d76837edf57dcc635afd91e892c0d7b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Mon, 6 Jun 2022 14:52:11 +0200 Subject: [PATCH] [realtek-ambz] Fix PWM output --- README.md | 12 ++++++------ .../cores/arduino/wiring_analog.c | 11 ++++------- .../realtek-ambz/fixups/lib_rtlstd_patch.a | Bin 24404 -> 13516 bytes .../realtek-ambz/fixups/lib_rtlstd_patch.md | 6 +----- 4 files changed, 11 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index cb5928c..490d0ea 100644 --- a/README.md +++ b/README.md @@ -99,27 +99,27 @@ Note: this list will probably change with each functionality update.   | `realtek-ambz` --------------------|--------------- Core functions | ✔️ -GPIO/PWM/IRQ | ✔️/❓/✔️ +GPIO/PWM/IRQ | ✔️/✔️/✔️ Analog input | ❓ UART I/O | ✔️ -Flash I/O | ❓ +Flash I/O | ✔️ **CORE LIBRARIES** | SoftwareSerial | ❌ SPI | ❌ Wire | ❗ **OTHER LIBRARIES** | Wi-Fi STA/AP/Mixed | ✔️ -Wi-Fi Client (SSL) | ✔️ (✔️) -Wi-Fi Server | ✔️ Wi-Fi Events | ✔️ +TCP Client (SSL) | ✔️ (✔️) +TCP Server | ✔️ IPv6 | ❌ HTTP Client (SSL) | ✔️ (✔️) HTTP Server | ✔️ -NVS / Preferences | ✔️ +NVS / Preferences | ❌ SPIFFS | ❌ BLE | - NTP | ❌ -OTA | ❓ +OTA | ✔️ MDNS | ✔️ MQTT | ✅ SD | ❌ diff --git a/arduino/realtek-ambz/cores/arduino/wiring_analog.c b/arduino/realtek-ambz/cores/arduino/wiring_analog.c index 9eb90f8..1e5695e 100644 --- a/arduino/realtek-ambz/cores/arduino/wiring_analog.c +++ b/arduino/realtek-ambz/cores/arduino/wiring_analog.c @@ -126,7 +126,7 @@ void analogWrite(pin_size_t pinNumber, int value) { pwmout_t *obj; if ((g_APinDescription[pinNumber].ulPinAttribute & PIO_PWM) == PIO_PWM) { - /* Handle */ + float percent = value * 1.0 / (1 << _writeResolution); if (g_APinDescription[pinNumber].ulPinType != PIO_PWM) { if ((g_APinDescription[pinNumber].ulPinType == PIO_GPIO) || (g_APinDescription[pinNumber].ulPinType == PIO_GPIO_IRQ)) { @@ -136,16 +136,13 @@ void analogWrite(pin_size_t pinNumber, int value) { pwmout_t *obj = (pwmout_t *)gpio_pin_struct[pinNumber]; pwmout_init(obj, g_APinDescription[pinNumber].pinname); pwmout_period_us(obj, _writePeriod); - pwmout_write(obj, value * 1.0 / (1 << _writeResolution)); + pwmout_write(obj, percent); g_APinDescription[pinNumber].ulPinType = PIO_PWM; g_APinDescription[pinNumber].ulPinMode = PWM_MODE_ENABLED; } else { pwmout_t *obj = (pwmout_t *)gpio_pin_struct[pinNumber]; - pwmout_period_us(obj, _writePeriod); - pwmout_write(obj, value * 1.0 / (1 << _writeResolution)); - /* if ( g_APinDescription[pinNumber].ulPinMode == PWM_MODE_DISABLED ) { - HAL_Pwm_Enable( &obj->pwm_hal_adp ); - } */ + // pwmout_period_us(obj, _writePeriod); + pwmout_write(obj, percent); } } } diff --git a/platform/realtek-ambz/fixups/lib_rtlstd_patch.a b/platform/realtek-ambz/fixups/lib_rtlstd_patch.a index 59a85f21c69b775c367fa492ca6189c4060fafff..66632af8a625a629dd32775cc641ddf581236699 100644 GIT binary patch delta 306 zcmcbzkMT_A1etnMLrY@|O9cf31rR_c6%@>kO~9fG3JF{c3=CQf49pc&#-UgYRNTP8 zKq}VjU|>Mt%^MiGm?mFmRcB_<*PqPDrpu&YG+CcbMVhN9F*iOZGbvdwUmxr>Lo-to iQ$q_&Gn36tY({cyQ1&jBeLRx|B1Is4)6H6uT5JFd201za literal 24404 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 eVQ7USg^k7lt{