moin!
stimmt, ist sehr verwirrend mit den nodeMCU-Sonderfällen. Ich kenne auch keine spezielle Referenz, die nodeMCU-devs kochen da ganz im Stillen ihr eigenes Süppchen. Immerhin sind immer für alle Arduino API Libs C++(11) (und sicher auch C99) die Basis, auch für die "spezielleren".
Aber auch wenn der nodeMCU IMO nichts für Anfänger ist, finde ich es doch extrem verwirrend, dass die sich nicht 100% an Arduino-Standards halten, auch wenn vieles bei Arduino ziemlich schwachsinnig gelöst ist. Immerhin fangen sie bei Arduino aber langsam an, #define-Makros durch Templates zu ersetzen...
Arduino wird sich auch höchstens extrem langsam bewegen, um blödsinnige Uralt-Standards zu ändern, aus Rückwärts-Kompatibilitäts-Gründen, und ich denke, das stört die nodeMCU devs auch gewaltig.
Ich selber kenne mich in C auch deutlich besser aus als in C++ (tbh, ich HASSE OOP!), von daher war mir das mit abs() für int und fabs() für float dunkel erinnerlich - ein Blick in die C99-Sprachdefinitionen für abs() hat das auch schnell bestätigt.
Was also den Sprachumfang angeht, würde ich mich bei nodeMCU auf gängige C++(11) Standards verlassen, teilweise C99 als Untermenge (siehe fabs), und das tue ich - mit wechselndem Erfolg - auch bei "normalen" Arduinos:abs
int abs (int n);
Absolute value
Returns the absolute value of parameter n ( /n/ ).
In C++, this function is also overloaded in header <cmath> for floating-point types (see cmath abs), in header <complex> for complex numbers (see complex abs), and in header <valarray> for valarrays (see valarray abs).
In C, only the int version exists.
For the long int equivalent see labs.
For the long long int equivalent see llabs.
See also
labs
Absolute value (function )
fabs
Compute absolute value (function )
http://www.cplusplus.com/reference/
http://www.cplusplus.com/reference/clibrary/
http://www.cplusplus.com/reference/cstdlib/abs/?kw=abs
Und wenn was nicht nach den Standards funktioniert: an die devs melden, entweder Arduino-github oder esp8266-github, je nachdem.
Von daher empfehle ich dir dringend, deinen Fehler (vermutlich ist es ja einer!) über die github-esp8266-issues zu melden, denn so etwas wie bei dir darf eigentlich nicht passieren!
https://github.com/esp8266/Arduino/issues
Lesezeichen