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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.