-         

Ergebnis 1 bis 3 von 3

Thema: sind ALLE Interrupts wieder ON nach Enable Interrupts?

  1. #1

    sind ALLE Interrupts wieder ON nach Enable Interrupts?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Ich bastell grade an einer 6 Kanal Lüftersteuerung, benutze dafür einen Mega128.
    Mit dem Timer2 erzeuge ich eine 10ms Basiszeit via Interrupt,
    dann benutze ich noch Int0-Int3 und Int6 + Int7 für die Drehzahlüberwachung.
    Da habe ich jetzt verschiedene Methoden ausprobiert zB. 100ms warten >> Impulse umrechnen oder 600ms warten > Impulse * 50 = Drehzahl.
    Das funktioniert auch prächtig, eine Zeitlang, so eine knappe Minute ungefähr, danach funktioniert immer noch alles, nur die For-Next Schleife,
    in der meine Temp/Leistungs/Drehzahl- Anzeige aktuallisiert wird, bleibt bei 0, obwohl die lautet:
    Code:
       For uich = 1 to 6
          Locate Zeile(uich) , Spalte(uich) : LCD uich
          LEISTUNGSANZEIGE                                      ' MACRO Leistung
          TEMPERATURANZEIGE                                     ' MACRO Temperatur
          DREHZAHLANZEIGE                                       ' MACRO Drehzahl
       Next uich
    uich beginnt eigentlich mit 1, in dem Fall ist und bleibt das allerdings 0.

    es liegt an meiner Drehzahlüberwachung:
    der Interrupthandler
    Code:
    FANISR:
       incr FANSIG
    Return
    die Aktivierung:
    Code:
             Select Case fanchannel
                Case 1:
                   cFan = 0
                   Enable Int3
                Case 2:
                   'Enable Int2
                   cFan = 0
                Case 3:
                   'Enable Int1
                   cFan = 0
                Case 4:
                   'Enable Int0
                   cFan = 0
                Case 5:
                   'Enable Int7
                   cFan = 0
                Case 6:
                   'Enable Int6
                   cFan = 0
             End Select
             FANSIG = 0
    es ist immer nur 1 Int aktiv.

    zu beginn der Anzeigeroutine steht: Disable Interrupts
    zum Ende Enable Interrupts.

    werden da alle Enabled? also auch die die nicht enabled waren?
    Geändert von sBronco (18.07.2011 um 19:45 Uhr)

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Nein. Für Interrupts gibt es die individuellen Flags UND den generellen Flag
    wenn letzterer enabled ist, gilt wieder die indiviuelle Einstellung.
    ( wäre auch sonst ein desaster)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Ja, so hab ichs mir jetzt aus der Bascom Hilfe auch zusammengereimt, war mir halt nicht sicher.

    Ich habe jetzt versuchsweise ohne Disable Interrupts sondern mit Start/Stop gearbeitet, selbes Ergebnis, nach geraumer Zeit flippt das Teil aus, und zählt nicht mehr hoch, aber nur dieser ganz Spezielle Teil, alles andere arbeitet normal weiter.

Ähnliche Themen

  1. Problem mit Enable INT0 nach Disable
    Von Henry im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 25.10.2009, 14:16
  2. ISR wird nach enable INT2 ausgeführt, obwohl Pin auf high
    Von robodriver im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 04.05.2008, 12:52
  3. 12 interrupts
    Von jclmaster im Forum AVR Hardwarethemen
    Antworten: 15
    Letzter Beitrag: 24.01.2006, 14:01
  4. interrupts & adc
    Von schroejahr im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 08.10.2005, 12:09
  5. Wie viele Interrupts sind gesund?
    Von cht im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 21.05.2004, 07:47

Berechtigungen

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