Eigenen Interrupt

Gast #149826
Hallo,

ich brauche bei einem Atmel-Controller-Programm einen eigenen
Interrupt, den ich aufrufen kann, der dann so funktioniert, wie z.B die
Timer- oder SPI-Interrupts oder so. Ich müsste also per Hand irgendwie
ein Flag setzen, so dass eine Interruptroutine darauf reagiert. Diese
Routine müsste dann auch mit eine Priorität versehen werden! Wie macht
man das am besten?

mfg
Wredo
Gast
schreibe eine normale funktion, die von einem anderen interrupt nicht
unterbrochen werden kann...

bsp:

void deineFunktion(parameter)
    cli();    //global interrupts ausschalten
    ....dein code
    sei();    //global interrupts einschalten
}
Gast
interrupts ausstellen geht leider nicht, da zwei andere Interrupts noch
wichtiger sind. Ich muss irgendwie eine Funktion selber aufrufen, die
höher priorisiert ist, als andere Interrupts, aber die beiden anderen
nicht beeinflusst.
Gast
hallo.

wenn wir mal unterstellen, daß es sich um einen avr handelt, dürftest
du schwierigkeiten mit der prioritätenvergabe haben. die ist da ja
fest.
je nachdem, wie hoch deine höherprioren interrupts angesiedelt sind,
müßtest du eben den "benutzerdefinierten" interrupt unterhalb davon
generieren, z.b. mit einer ad-wandlung, oder starte einen timer, der im
nächsten zyklus überläuft...
die antwortzeit vom "auslösewunsch" bis zum sprung in die
interruptroutine erhöht sich natürlich entsprechend.

gruß

michael
Gast
Bei einem AVR läßt sich ein Software-Interrupt generieren, indem man
einen ext. Interrupt definiert und dann den PIN als Ausgang deklariert.
Wenn dann dieser Ausgang einen Logikpegel wechselt (z. B. von High auf
Low, wenn so deklariert), dann wird eine Int-Routine angesprungen.
MW

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.