Bei constexpr Werten (reden wir mal nicht von constexpr Funktonen und deren mögl. Rückgabewert) muss der Ausdruck (wie Du schon angemerkt hast) beim Übersetzen (Kompilieren und Linken) bekannt sein. Somit haben sie die Voraussetzung im ROM abgelegt werden zu können. Das ist bei const in dieser Bestimmtheit nicht gegeben.
Anders gesagt:
constexpr gibt eine Garantie, dass eine Variable einen Wert besitzt der sich in Kontexten nutzen lässt, welcher eine Konstanz beim Kompilieren erfordert. Das ist bei const nicht gegeben.
So, hallo zusammen. ich melde mich mal wieder zurück ;o)
Danke nochmals für die ganzen Vorschläge. Ich bin noch nicht wirklich fertig, aber wollte mal eben zeigen, daß jetzt alles soweit fest verkabelt und verbaut ist (hier jetzt aber mit einem Nano V3 Board).
ich habe ein passendes Gehäuse entworfen und gedruckt.
Vielleicht kann mir aber doch noch einmal einer von euch eine Frage beantworten. Bei dem Drehgeber habe ich den folgenden Effekt, wenn ich den Drehknopf schneller drehe. Dann "springen" die Werte quasi unkontrolliert hin und her, d.h. er erhöht die Werte nicht einfach nur schneller sondern springt wirklich vor und zurück. Sobald ich den Drehgeber langsam verstelle funktioniert alles einwandfrei.
Hat einer eine Idee, woran das liegt ? Übersehe ich hier was im Sketch ?
Drehgeber sind zickig. Mechanisch gibt es wohl größere Qualitätsunterschiede. Bei Dir tippe ich aber eher darauf, daß Du keine Interrupts verwendest, wodurch Dir Informationen verloren gehen.
Meine deLonghi Espressomaschine hat aber ein vergleichbares Problem, also selbst die Profis scheinen mit Drehgebern nicht klar zu kommen.
Ich will ja mal behaupten, das es beim Code aus #16 nicht zu einem Springen des Encoders kommt. Jedenfalls habe ich das bei meinen Encodern noch nicht erlebt.
Aber das lässt sich nur feststellen, wenn Du es mal ausprobieren würdest.
Hey, siehste.... den Programmcode 2 aus #16 hatte ich überhaupt nicht mehr auf dem Schirm. Danke nochmal für den Hinweis. Im Simulator läuft das ja super.
Ich habe es gerade probiert und es läuft einwandfrei
Ich verstehe vielleicht gerade mal die Hälfte des Codes zum jetzigen Zeitpunkt, aber das läuft echt geschmeidig mit dem Programmcode 2. Egal wie schnell ich hier den Drehgeber drehe, führt er sauber aus und zählt hoch/runter.
Ich danke dir vielmals für deine Unterstützung und deinen Aufwand.