Variablen Änderung abfragen
-
Hallo
Ich lasse einen Timer hochzählen. dabe seitz er zum Beispiel jede Sekunde eine Var
zähler++;
jetzt möchte ich meine main gerne darauf reahgieren. Sprich: immer wenn der Wert um 1 erhöht wird soll ein befehl ausgeführt werden/ bzw. eine andere variable gesetzt werden.
z.B.: einfach
Printf ("zähler ist bei %d\n", zähler;
Ich weiß ist sicher recht simpel, aber ich komme ned weiter.
danke
-
Bezeichner in C sollten keine Umlaute enthalten.
Was du erreichen willst (Interprozesskommunikation/Eventhandling/...) funktioniert mit Standard C Mitteln nicht, du musst auf spezielle Bibliotheken dafür ausweichen, die sind dann meistens plattformabhängig, also bist du besser aufgehoben in Linux/Unix bzw. WinAPI ...
-
Hallo
Sorry das mit den umlauten ist klar. hab das hier wohl zu schnell hin getippt...
Das Blöde ist, das ich nur ein Stück von dem Code mache. das ganze ist auch ein Embeddet Projekt. sprich es wird ein uC programmiert. War wichtig das noch zu sagen.
-
Wer setzt denn den Zähler, die μC Hardware oder ein Prozess?
Bei letzterem muss dein Compiler/Bibliothek RPC oder vergleichbares unterstützen, irgendwelche Embedded-Experten können evtl. weiterhelfen.
Der Zähler muss jedenfalls volatile sein.
-
Nun, wenn du auf C++ umsteigen würdest, könntest du das ganze sogar plattformunabhängig durch das Erstellen einer
Counter
-Klasse und dem Überladen der++
-Operatoren bewerkstelligen://Ganz, ganz grobe Schnittstelle für Counter-Klasse class Counter { public: int operator++()//Präfixoperator { //Dein Funktionsaufruf kann dann hier rein. return ++MyValue; } int operator++(int)//Postfixoperator, der Parameter wird nicht effektiv vom Programmierer benutzt. { //Dein Funktionsaufruf kann auch hier rein. int Temp=MyValue; MyValue++; return Temp; } private: int MyValue; };
Aber da müsste noch einiges rein. Außerdem funzt das ganze in C nicht.
-
Du wirst dir den alten Wert merken müssen und den dann mit dem aktuellen vergleichen.
Der µC läuft i.A in main() in einer Endlosschleife, der kommt also oft genug an der Abfrage vorbei.