Forum: Compiler & IDEs ATmega8535 - alle Interrupts verursachen Reset


von Kristof Csorba (Gast)


Angehängte Dateien:

Lesenswert?

Hello Alle!
Irgendwie kann ich in mein ATmega8535 zu keine der Interrupts Haendler
zuordnen. Im Beispiel Programm will ich ein LED einschalten, aber
nachdem ich INT0 aktivierte (einfache Knopf zwischen INT0 pin und GND),
wird ein Reset ausgefuehrt. (LED schaltet sich bald wieder aus.)
Dasselbe passiert bei Versuchen mit SIG_ACD und SIG_INTERRUPT1. Ich
habe signal.h, modell im makefile stimmt... andere Empfehlungen habe
ich bissher nicht gefunden. Mir scheint, fuer alle Interrupts wird der
default vector ausgefuehrt.
Hat jemand ein Idee, was ich falsch mache?

ciao,
Kristof

von Mike Schultz (Gast)


Lesenswert?

Moin,

kann es sein, daß er dir die while() schleife wegoptimiert?
Ich bin der meinug mal gelesen zu haben, daß der Kompiler diese
Schleifen zum teil erkennt und wegläßt.

Und dann wartet er natürlich nicht, sondern läuft immer weiter und
führt "sinnlose" Befehle aus bis er wieder am Anfang ankommt. Und da
kommt dann ein Reset.

Mike

von mthomas (Gast)


Lesenswert?

Der Compiler "wirft" keine Warnungen? Da sollte zumindest noch ein
#include <avr/signal.h> rein. Ausserdem: Parameter zur
delay-loop-Funktion duerfte ausserhalb des Wertebereichs sein.

von Kristof Csorba (Gast)


Lesenswert?

Waaaaah...
OK, Ihr habt Recht! Der Compiler wirft
test1.c:14: warning: type of "__vector_14" defaults to "int"
zB. beim SIG_ADC. Und das habe ich nicht bemerkt. Noch ein Grund, warum
Interrupts nicht gehen koennen...
Danke fuer die Hilfe!
ciao,
Kristof

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
Noch kein Account? Hier anmelden.