Interruptroutine wird nicht ausgeführt

Gast #271634
Lesenswert?

Guten Abend

Irgendwie funktioneirt bei mir der Aufruf der ISR nicht. Ich verwende
einen 90s8535 mit dem STK200. Was habe ich vergessen einzustellen, bzw.
muss man auf dem Board noch etwas beachten. Die Quelle ist ein
Temperaturfühler (SMT 160-30), jedoch habe ich uach mit den Tastern
eine positive Flanke auf PD6 gegeben. Der Quellcode ist im Anhang
beigelegt.

Gruss E.H.
Angehängte Dateien:
Gast #271639
Lesenswert?

@Fritz Ganter
Ja, stimmt das war falsch, es funktioniert jedoch auch nach dieser
Änderung nicht. Ich habe den neuen Code angehängt.

@Hilel: Ich verstehe nicht ganz warum TCCR1A initialisiert werden muss.
Dort stelle ich ja nur Dinge für Output Compare ein und ich möchte ja
ein Input Capture machen.

Datenblatt von 90S8535:
http://www.nikhef.nl/pub/departments/et/misc/at8535/at8535_dat.pdf
Angehängte Dateien:
Gast #271640
Lesenswert?

Ich dachte PWM. Sorry.

Woher soll das Programm wissen, dass es bei Interrupt in die
Interrupt-Routine springen soll?
Fehlt da nicht der Interrupt-Vektor?

#pragma interrupt_handler DeineInterruptRoutine:6
Gast #271642
Lesenswert?

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#INTERRUPT

Ich habe das von hier übernommen, allerdings bringt der Compiler ein
paar warnungen, wie z.B. die ich jedoch ignoriert habe:

warning: return type defaults to `int'
warning: function declaration isn't a prototype
In function `INTERRUPT':
warning: type of "__vector_5" defaults to "int"
In function `INTERRUPT':
warning: control reaches end of non-void function

Gruss
Gast #271644
Lesenswert?

ja, ich bin mir in der Zwischenzeit ziehmlich sicher, dass irgendetwas
mit diesen Interrupt vektoren nicht stimmt. Ich entwickle mit WinAVR,
muss ich da noch irgendetwas einstellen, oder muss noch etwas mit
#include eingebunden werden?

Als Starthilfe habe ich das tutorial
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#INTERRUPT
gemacht. Gibt es evtl. noch andere solche tutorials, möglicherweise
eines, das etwas mehr auf die Interrupts eingeht?

Gruss
Gast #271645
Lesenswert?

Es funktioniert jetzt. Ich konnte zwar das Problem nicht lösen, sondern
nur umgehen. ich habe aus dem Interrupt ein Signal gemacht und dann
noch avr/signal.h importiert.

Jedoch wüsste ich trotzdem gerne, warum es mit Interrupt nciht
funktioniert hat.
Gast #271646
Lesenswert?

Erst mit Einbinden von avr/signal.h hast Du Deine Interrupt-Vektoren
eingebunden (siehe die Warnungen vorher).

Das Tauschen von Interrupt gegen Signal war sicher nicht die
Problemlösung. Trotzdem sollte immer Signal verwendet werden, solange
man nicht genau weiss, was man tut.

Gruß, Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren