Frage zu analogReference(INTERNAL)

Hallo,

habe nur kurz eine Verständnis Frage zu dem analogReference(INTERNAL) ?
Mit dem Befehl setzte ich ja die Reference auf 1.1 Volt aber warum bekomme
ich bei

lcd.print(INTERNAL);

3 angezeigt ? und wenn ich

lcd.print(DEFAULT);

wird ebenso 3 angezeigt ?

Kann mir das jemand erklären ?

Gruß Goofy

Weil alle diese Schlüsselwörter, welche in Funktionen geschrieben werden, in einer Library per "#define" in eine Zahl umgewandelt werden. Darmit erspart man sich die Übergabe von Strings an die aufgerufene Funktion.

Grüße Uwe

Vielen DANK, dann hat quasi das Schlüsselwort "INTERNAL" die Zahl 3.

OK, hat mich nur ein wenig gewundert, aber klar, wir dann auch nicht so speicher
Intensiv sein ?

Gruß Goofy

Das Problem ist vielmehr die Stringverarbeitung, die ist bei C sehr kompliziert. Die Speicherersparnis ist gewaltig.
Grüße Uwe

"INTERNAL" ist kein Schlüsselwort sondern ein Makro. Das Makro ist als "3" definiert. Das hat nichts mit Stringverarbeitung zu tun. Das wird durch den Präprozessor aufgelöst. Der Compiler verarbeitet dann die 3.

Eine bessere Lösung wäre meiner Meinung nach die Verwendung von Konstanten / Enums. Keine Ahnung warum Arduino für sowas Makros verwendet.