mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR resettet auf mysteriöse Art


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ich habe letzten ein Programm für einen ATMEGA8 in BASCOM AVR
geschrieben, mit dem ich jetzt eine ganze Menge Ärger hab. Kann es
sein, daß der "WAIT"-Befehl und die BASCOM-internen Befehle zum
steuern des 1WIREbusses auf den 16-Bit Timer zurückgreifen? Immer wenn
ich in der Interruptserviceroutine einen "WAIT"-Befehl aufrufe, oder
meine Routine zur Temperaturmessung aufrufe, dann resettet der
Controller einfach. Wodurch kann so ein Selbstreset überhaupt
auftreten? Dann wüßte ich wenigstens, in welcher Richtung ich
weitersuchen muß. Ich bin für jede Hilfe dankbar.

   Gruß

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm einmal der Watchdog, dann ein Fehler in der Interrupt Vektor
Tabelle.. aber was das mit dem Wait Befehl zu tun hat.. ka.. vielleicht
hast du auch ein problem mit dem stack.. poste doch mal deinen
quellcode..

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Mathias : IE nutzer ? Zu oft auf zurück gedrückt ?

Disassembliere das Programm mal und schaue, was Bascom an besagten
Stellen macht. Könnte villeicht etwas schwieriger werden, aber
villeicht hilfts. Genau aus dem Grund schreib' ich Firmware nur mit
Assembler, weil ich mich bei der Fehlersuche auf Hardwareebene nicht
noch mit den Bugs mancher Compiler herumschlage  möchte (und weil der
Code mit Asm so und so effektiver wird).

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antworten! Die aktuelle Version des Quellcodes hab ich
grad nicht hier, den werde ich morgen oder übermorgen posten. Den
Watchdog habe ich nicht aktiviert. Ich denke die 1WIRE-Routinen werden
dies auch nicht tun. Ich habe ne Menge Lokaler Variablen in den
Subroutinen. Vielleicht ist der Stack auch zu klein? Aber dann gibt der
Compiler doch ne Fehlermeldung raus, oder? Wo kann ich den den erzeugten
ASM-COde anschauen?

Gruß

Autor: Hartmut Gröger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

@Christoph

Ich kann dir nur zustimmem. Nur in Assembler weiss man was der
Prozessor macht.

MfG HG

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich kann dir nur zustimmem. Nur in Assembler weiss man was der
> Prozessor macht.

Ne. Man weiß nur, was er machen sollte. Was er tatsächlich macht, weiß
kein Mensch. ;-)

Autor: Daniel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, hier ist nochmal der Quelltext. Wie kann ich denn nun den erzeugten
ASM-COde anschauen? Geht das mit ascom, oder brauche ich da ein extra
Programm für?

Gruß

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe jetzt einfach mal zur Sicherheit den Stack erhöht und siehe da,
es funktioniert plötzlich. Allerdings hab ich jetzt an anderen Stellen
noch kleine merkwürdige Fehler, denen ich nochmal auf den Grund gehen
muß. Ich würde mich auch freuen, wenn mir jemand nochmal sagt, wie
und/oder mit welchem Programm man sich den von BASCOMAVR erzeugten
ASM-Code anschauen kann. Das wäre für die Zukunft sehr hilfreich.

Grüße

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.