Variablenhandling im Zusammenhang mit Interrupt-Service-Routinen

Gast #4284149
Lesenswert?
• ▲
▼
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
Gast #4284157
Lesenswert?
• ▲
▼
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.
#4284345
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.