Guten Tag :) Wie kann ich in C in einer ISR einen Wert berechnen, ohne ihn in einer globalen Variable zu speichern, gleichzeitig aber anderen Funktionen den Zugriff auf diesen Wert möglich machen? Beispiel wäre zb eine Echtzeituhr. ISR von Timer 2 zählt die Sekunden und berechnet Datum und Zeit. Gleichzeitig soll aber die Uhrzeit über serielle Schnittstelle einstellbar bzw lesbar sein. Geht das ohne globale Variablen? Grüße Dennis
Dennis schrieb: > Geht das ohne globale Variablen? auf einen µC - nein. Was findest du an globale Variablen schlimm?
Dennis schrieb: > Beispiel wäre zb eine Echtzeituhr. > ISR von Timer 2 zählt die Sekunden und berechnet Datum und Zeit. > Gleichzeitig soll aber die Uhrzeit über serielle Schnittstelle > einstellbar bzw lesbar sein. Ganz schlechtes Beispiel! In der ISR wird nur gezählt und nichts berechnet. In einem Modul kannst Du static-Variablen verwenden, die nur dort sichtbar sind. Wenn Du ansonsten globale Variablen brauchst, mußt Du sie auch nehmen.
Peter II schrieb: > Dennis schrieb: > Geht das ohne globale Variablen? > > auf einen µC - nein. > > Was findest du an globale Variablen schlimm? Nix :) Reines Interesse!
Dennis schrieb: > Wie kann ich in C in einer ISR einen Wert berechnen, ohne ihn in einer > globalen Variable zu speichern, gleichzeitig aber anderen Funktionen > den Zugriff auf diesen Wert möglich machen? Gar nicht. Eine ISR nimmt keine Funktionsparameter entgegen und kann auch keinen Wert zurückgeben. Ergo kann sie Daten nur über globale Variablen austauschen. Hättest du mit ein paar Sekunden Nachdenken auch selber drauf kommen können.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.