-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Interrupt

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.03.2011
    Beiträge
    51

    Interrupt

    Anzeige

    einen schönen morgen,
    eine Frage habe ich und zwar: ich arbeite mit 2 INTERRUPT INT0 und INT1, in INT0 habe ich eine Fct0"START" und in INT1 habe ich die Fct1 "RESET", ich möchte gern das die Fct1 die Fct0 unterbrechen muss. moment wenn Fct0 läuft, passiert nicht wenn ich INT1 auslöse, der wartet ab bis Fct1 durch ist.
    danke

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Wenn ich das richtig verstanden habe besteht dein Problem darin das der Controllert den INT1 ignoriert sobald der INT0 ausgelöst wurde?
    Wenn das so ist liegt das daran das der INT0 von der Priorität höher liegt als der INT1.
    Das kannst du hier nochmal nachlesen:
    http://www.tschallener.net/AVR/Inter...ikATmega32.pdf

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Ich nehme mal an das du mit ATmega oder ATtiny arbeitetst. Bei diesen haben die Interrupts gleiche Priorität. Es wird der nächste Interrupt erst abgearbeitet wenn der Vorhergehende beendet ist.
    Die einzige Möglichkeit ist, den generellen Interrupt wieder mit (sei); freizugeben. Dies gilt allerdings für alle Interrupts und ist sehr gefährlich wenn man nicht genau weiss was man tut. Es könnte bei dir z.B. der INT0 wieder auslösen wenn der vorhergehende noch nicht abgearbeitet ist. Es kann sehr schnell zu Stacküberlauf und undefinierten Verhalten führen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #4
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Wie ist das den dann in dem PDF mit den unterschiedlichen Prioritäten gemeint wenn alle die gleiche Prio haben sollen?
    BIn gerade etwas verwirrt

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Zitat Zitat von Kampi Beitrag anzeigen
    Wie ist das den dann in dem PDF mit den unterschiedlichen Prioritäten gemeint wenn alle die gleiche Prio haben sollen?
    BIn gerade etwas verwirrt
    Die Priorität entscheidet nur darüber, in welcher Reihenfolge die Interrupts bedient werden, wenn mehrere anliegen.
    MfG
    Stefan

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    23.03.2011
    Beiträge
    51
    Zitat Zitat von Hubert.G Beitrag anzeigen
    Ich nehme mal an das du mit ATmega oder ATtiny arbeitetst. Bei diesen haben die Interrupts gleiche Priorität. Es wird der nächste Interrupt erst abgearbeitet wenn der Vorhergehende beendet ist.
    Die einzige Möglichkeit ist, den generellen Interrupt wieder mit (sei); freizugeben. Dies gilt allerdings für alle Interrupts und ist sehr gefährlich wenn man nicht genau weiss was man tut. Es könnte bei dir z.B. der INT0 wieder auslösen wenn der vorhergehende noch nicht abgearbeitet ist. Es kann sehr schnell zu Stacküberlauf und undefinierten Verhalten führen.
    ja ich arbeite mit Atmega88, und ich habe jetzt in Interrupt 0 sei(), eingfügt, und der hat Int1 untergebrochen, aber nach dem Ablauf des INT1 hat er weiter INT0 ausgeführt, das wöllte ich auch nicht, der sollte INT0 unterbrechen und raus von der Int0 und nicht wieder zurück

  7. #7
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    28
    Beiträge
    3.517
    Blog-Einträge
    9
    Zitat Zitat von sternst Beitrag anzeigen
    Die Priorität entscheidet nur darüber, in welcher Reihenfolge die Interrupts bedient werden, wenn mehrere anliegen.
    Ah ok. Danke!

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Wenn der INT0 unterbrochen wird und nach Ende des INT1 nicht mehr weiter bearbeitet werden soll, dann musst du dir dafür eine Routine in Assembler selbst schreiben. Du musst sämtliche Registersicherungen die bei Beginn eines Interrupt geschehen wieder Rückgängig machen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    23.03.2011
    Beiträge
    51
    Zitat Zitat von Hubert.G Beitrag anzeigen
    dann musst du dir dafür eine Routine in Assembler selbst schreiben.
    ich kann leider nicht in Assembler programmieren.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    23.03.2011
    Beiträge
    51
    wie wäre es mit dem Watchdog

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Interrupt? Was is das.
    Von Robin1508 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 25
    Letzter Beitrag: 16.05.2008, 08:10
  2. Interrupt
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 09.06.2006, 08:10
  3. Interrupt
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 02.05.2006, 09:56
  4. Interrupt ADC
    Von Night_MaKu im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 27.04.2006, 18:05
  5. Interrupt waehrend Interrupt
    Von thomas05 im Forum PIC Controller
    Antworten: 7
    Letzter Beitrag: 08.11.2005, 07:13

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •