mikrocontroller.net

Forum: Compiler & IDEs Main-Schleife wird nicht mehr durchlaufen.


Autor: Johannes R. (joohaannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Was kann es denn für Gründe haben, wenn die Hauptschleife im Programm 
nicht mehr ausgeführt wird?
Bei mir ist es so, dass sie ein paar Minuten läuft und dann wird die 
while-Schleife nicht mehr ausgeführt ... ich kann mir das zZ nicht 
erklären ...

Danke im voraus!
Johannes

Autor: Jonas Mitschang (jonen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht tritt dann ein Interrupt auf (z.B. Timer Overflow) aus dem 
nicht zurückgekehrt wird. Schalte mal die Interrupts aus zum testen.
Greez

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardwareprobleme, zum Beispiel eine wackelige Stromversorgung?

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hängst Du irgendwo in einer Schleife (z.B. while) fest, wo 
das Abbruchkriterium niemals eintrifft. Oder der Controller stürzt wegen 
einem Sprung ins Nirvana völlig ab (z.B. direkter Sprung auf Adresse, wo 
sich kein ausführbarer Code befindet). Kann auch sein, dass Du (z.B. mit 
einem falschen Pointer) auf eine Adresse zugreifst, die nicht vorhanden 
ist, oder auf die Du kein Zugriff hast und dann ein Exception IRQ oder 
sowas ausgelöst wird, der nicht behandelt ist.
Gibt sicher noch mehr Ursachen und könnte alles mögliche sein.

Am besten guckst Du mal im abgestürzten Zustand mit dem Debugger, was 
der Controller genau treibt.

Autor: Johannes R. (joohaannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten!
Ich glaube es ist ein Speicherproblem, kann das sein? Ich habe jetzt ein 
Array verkleinert ... und bisher läufts wie es soll...

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn mehr RAM gebraucht wird als da ist, wächst möglicherweise der Stack 
in den Bereich der statischen Daten und er überschreibt diese bzw. 
Stackinhalte werden überschrieben (Variablenwerte ändern sich plötzlich, 
Rücksprungadressen aus Funcs, ISRs stimmen nicht mehr, Register, PSW 
werden nach ISR falsch restauriert, etc).

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin ich blind, oder disskutiert ihr hier wieder ohne jegliche Kenntnisse 
über das Problem? Ich hab keinen Code gesehen?!?


@joohaannes: Kommt du auch mit dem Fahrrad zur Autowerkstatt und sagt: 
mein Auto ist kaputt, können sie mir sagen was kaputt ist? Da fehlt was 
um die Frage zu beantworten, oder? ;)

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus wrote:
> Bin ich blind, oder disskutiert ihr hier wieder ohne jegliche Kenntnisse
> über das Problem? Ich hab keinen Code gesehen?!?

Du must nur intensiv in die Kristallkugel blicken: Der Fehler ist in 
Zeile 41.

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Kugel muss einen Sprung haben.
Er ist in Zeile 42.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das temporäre Carry-Bit war nicht gesetzt, darum hat der Watchdog einen 
Haufen hingesch...

Autor: Random ... (thorstendb) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

lass ma ein wenig Code sehen.
Um was für einen Controller handelt es sich?

Bei den Luminary-Cortexen z.B. landet man gerne mal sehr schnell im 
Abort-Handler. Ist generell ne gute Idee, dass man ne LED, UART oder was 
auch immer hernimmt, um mit dem jeweiligen Abort-Handler das Auftreten 
eines solchen anzuzeigen.

VG,
/th.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.