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ß
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..
@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).
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ß
Hi @Christoph Ich kann dir nur zustimmem. Nur in Assembler weiss man was der Prozessor macht. MfG HG
> 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. ;-)
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ß
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
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.