Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error on esp 32 wroom 32D function overloading and how i fixed it #18

Open
royamay opened this issue Dec 10, 2023 · 0 comments
Open

Error on esp 32 wroom 32D function overloading and how i fixed it #18

royamay opened this issue Dec 10, 2023 · 0 comments

Comments

@royamay
Copy link

royamay commented Dec 10, 2023

c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp: In member function 'void FanController::begin()':
c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp:31:28: error: call of overloaded 'analogWriteFrequency(int)' is ambiguous
analogWriteFrequency(25000);
^
In file included from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/Arduino.h:36,
from c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp:1:
C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/esp32-hal.h:100:6: note: candidate: 'void analogWriteFrequency(uint32_t)'
void analogWriteFrequency(uint32_t freq);
^~~~~~~~~~~~~~~~~~~~
In file included from c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp:5:
c:\Users\Administrator\Documents\Arduino\libraries\ESP32_AnalogWrite/analogWrite.h:15:6: note: candidate: 'void analogWriteFrequency(double)'
void analogWriteFrequency(double frequency);
^~~~~~~~~~~~~~~~~~~~
c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp: In member function 'void FanController::setDutyCycle(byte)':
c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp:55:43: error: call of overloaded 'analogWrite(byte&, double)' is ambiguous
analogWrite(_pwmPin, 2.55 * _pwmDutyCycle);
^
In file included from C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/Arduino.h:36,
from c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp:1:
C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/esp32-hal.h:98:6: note: candidate: 'void analogWrite(uint8_t, int)'
void analogWrite(uint8_t pin, int value);
^~~~~~~~~~~
In file included from c:\Users\Administrator\Documents\Arduino\libraries\FanController\FanController.cpp:5:
c:\Users\Administrator\Documents\Arduino\libraries\ESP32_AnalogWrite/analogWrite.h:21:6: note: candidate: 'void analogWrite(uint8_t, uint32_t, uint32_t)'
void analogWrite(uint8_t pin, uint32_t value, uint32_t valueMax = 255);
^~~~~~~~~~~

Using library FanController at version 1.0.6 in folder: C:\Users\Administrator\Documents\Arduino\libraries\FanController
Using library ESP32 AnalogWrite at version 0.1 in folder: C:\Users\Administrator\Documents\Arduino\libraries\ESP32_AnalogWrite
exit status 1

Compilation error: exit status
The analogWriteFrequency function is defined both in esp32-hal.h (as part of the ESP32 core library) and in analogWrite.h (from the ESP32_AnalogWrite library), causing ambiguity.
To resolve this, you may need to modify the FanController library code to specify which analogWriteFrequency it should use.
analogWrite(_pwmPin, 2.55 * _pwmDutyCycle); is Ambiguous:

Similar to the previous point, analogWrite is defined in both libraries. The ESP32 core library expects an integer value, while the ESP32_AnalogWrite library has a version that takes a uint32_t with an optional maximum value parameter.
This also needs to be resolved by specifying which version to use or by adjusting the parameters to match one of the expected function signatures.

in FanController.cpp
Remove the include for analogwrite.h
and Modify function calls:
analogWriteFrequency(25000)
and
analogWrite(_pwmPin, 2.55 * _pwmDutyCycle);

to what the esp32 core version expects
analogWriteFrequency((uint32_t)25000);
and
analogWrite(_pwmPin, (int)(2.55 * _pwmDutyCycle));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant