STM32 RTC interrupt für sekunden task verwenden

Gast #4160376
Lesenswert?
• ▲
▼
Hallo Leute,

Prozessor: STM32F105RC

Folgendes Problem:
Ich benötige in meinem Programm einen sekunden Task (verwende kein OS).
Da ich die RTC bereits verwende habe ich mir gedacht, dass ich den 
Interrupt
des RTC verwenden kann und rufe hier meinen Sekunden Task auf.
Funktioniert eigentlich ganz gut.

NUR hängt sich meine Steuerung auf und zwar nach ca. 12 - 48h.

Meine Frage ist es möglich, dass man im RTC interrupt keine funktionen 
aufrufen darf die mit der RTC nichts zu tun hat. Mittlerweile rufe ich 
diese funktion über den Systick timer auf und mache ich einen 
langzeittest der vielversprechend aussieht.

Worum geht es mir.
Die Steuerung soll zuverlässig über Monate laufen, und daher wollte ich 
fragen ob man zumindest sagen kann, dass das ein Fehler war, oder ob 
dass jetzt nur Zufall ist, dass die Steuerung bereits länger (24h) ohne 
Probleme läuft.

Vielen Dank im Voraus!!
Gast #4160408
Lesenswert?
• ▲
▼
Suche mal hier im Forum nach solcherart Fehlern.

Es sind eine ganze Reihe von Ursachen möglich, die von Designfehlern in 
der Elektronik bis zu solchen in der Software reichen. Die beiden 
häufigsten sind Probleme mit der Stromversorgung, insbesondere falls 
Lasten mit hohen Strömen bzw. starken Stromänderungen beteiligt sind, 
sowie Designfehler in der Software z.B. Stack- oder Pufferüberläufe oder 
Übersehen von Seiteneffekten.

Mehr lässt sich auf diesem allgemeinen Level beim besten Willen nicht 
sagen.

Die einzige wirklich professionelle Herangehensweise ist eine Analyse 
und Diagnose des Problems. Workarounds wie Du sie verwendest, gehen i.A. 
allenfalls zufällig.
Es wäre extrem ungewöhnlich wenn man bzgl. der Funktionen in Interrupts 
auf solche eingeschränkt wäre, die direkt mit der Hardware-Einheit zu 
tun haben, die den Interrupt ausgelöst haben.
Anfänger machen allerdings oft den Fehler recht lange Funktionen in 
Interrupts aufzurufen und ein eigentlich notwendiges 
ereignisorientiertes Design zu vernachlässigen. Das z.B. wäre einer der 
Designfehler.

Du hast also zwei Möglichkeiten: Genau zu diagnostizieren, in welcher 
Weise im Detail, das System sich "aufhängt". Als z.B. Debug-Ausgaben. 
Und uns hier so viele Informationen über Dich selbst, das Design und die 
Hardware und Software zu geben, wie möglich, in der Hoffnung das hier 
jemanden etwas auffällt.

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.