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