- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 28

Thema: Teensy 3.2 +++ Interrupt, Übergabeparameter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144

    Teensy 3.2 +++ Interrupt, Übergabeparameter

    Hallo Zusammen.
    Leider finde ich keine praktikable Lösung für die Übergabe vom Pin-Interrupt zum loop().

    Aufgabe:
    Im Loop gibt es verschiedene Prg-Abschnitte und eine Taste zur Auslösung von irgendwas.
    Dieses Taste löst je nach Programmabschnitt eine Funktion aus.
    Bsp:
    Prg-Abschnitt 1 läuft ca. 1Sek, wird hierbei die Taste gedrückt leuchtet eine grüne LED.
    Danach Prg-Abschnitt 2 mit gleicher Taste und roter LED, u.s.w.

    Ich finde keine Verbindung vom Pin-Interrupt zu den jeweiligen Prg-Abschnitten.

    Interrupt ist klar, Entprellung ist klar, Prog-Abschnitte sind klar!
    Vermutlich werde ich mit einer volatile-Variable arbeiten. Sollte der ISR oder der jeweilige Prog-Abschnitt die Var verändern?
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  2. #2
    HaWe
    Gast
    Variablen innerhalb der loop behalten nicht ihre Werte von einer zu den nächsten loop-Durchläufen.
    Wenn auch ISRs drauf zugreifen, würde ich mit globalen Variablen arbeiten,
    wenn sie nur lokal in der loop gebraucht und verändert werden: mit
    volatile static ...

    In allen Fällen:
    bitte vollständigen Code in code tags posten!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144
    Zitat Zitat von HaWe Beitrag anzeigen
    volatile static ...
    volatile Variable nutze ich bereits Funktionsübergreifend.

    Im u.s. Versuch steuer ich aus der ISR-Funktion den Summer inkl. Pause.
    Sollte man aber nicht innerhalb einer Interrupt-Routine... oder sollte ich das nicht soooo sklavisch sehen?
    Code:
    void ISR_Aufgabe() {
      if (ISR_Uebergabe == 1) {
        SummerTon();
      }
      if (ISR_Uebergabe == 2) {
        SummerTon();
        Pausen_ms(100);
        SummerTon();
      }
      if (ISR_Uebergabe == 3) {
        SummerTon();
        Pausen_ms(100);
        SummerTon();
        Pausen_ms(200);
        SummerTon();
      }
    }
    Im jeweiligen Prog-Abschnitt wird die Var "ISR_Uebergabe" verändert.
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  4. #4
    HaWe
    Gast
    volatile alleine nutzt nur etwas, wenn die Variablen nicht weiterverarbeitet oder unbemerkt (z.B. bei multithreading) verändert werden könnten. Es wird nur verhindert, dass sie in Registern verbleiben (edit) oder vom Compiler herausoptimiert bleiben.

    ansonsten:
    static
    oder
    volatile static


    wo ist
    ISR_Uebergabe
    definiert?
    Geändert von HaWe (21.11.2019 um 16:03 Uhr)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.06.2019
    Beiträge
    144
    Vor void setup()
    Code:
    volatile int ISR_Uebergabe = 0;
    Ohne static funktionierts einwandfrei - Zufall?
    Code:
    void loop() {
      digitalWrite(LEDgnPin, 1);
      digitalWrite(LEDrtPin, 0);
      __TP__(1);
      ISR_Uebergabe = 1;
      Pausen_ms(3000);
      
      digitalWrite(LEDgnPin, 0);
      digitalWrite(LEDrtPin, 1);
      __TP__(2);
      ISR_Uebergabe = 2;
      Pausen_ms(3000);
    
      digitalWrite(LEDgnPin, 1);
      digitalWrite(LEDrtPin, 1);
      __TP__(3);
      ISR_Uebergabe = 3;
      Pausen_ms(3000);
    }
    __________________________________________________ _
    | Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |

  6. #6
    HaWe
    Gast
    also global?
    dann ist es automatisch "static" und "volatile" brauchst du dann überhaupt nicht.

    - - - Aktualisiert - - -
    edit - Frage hat sich erübrigt
    - dann allerdings verstehe ich deinen Code nicht, da muss jemand anderes 'ran

Ähnliche Themen

  1. Teensy 3.2 +++ Interrupttimer via RTC ?
    Von frabe im Forum Arduino -Plattform
    Antworten: 1
    Letzter Beitrag: 22.10.2019, 15:56
  2. Teensy 3.2 +++ I/O-Werte, Analog-In
    Von frabe im Forum Arduino -Plattform
    Antworten: 26
    Letzter Beitrag: 18.10.2019, 09:57
  3. Der Teensy 4.0 ist fertig
    Von Mxt im Forum Arduino -Plattform
    Antworten: 44
    Letzter Beitrag: 12.08.2019, 10:24
  4. Platinenlayout Problem mit Platinenlayout - Adapterplatine für den Teensy 3.1
    Von robonooby im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 9
    Letzter Beitrag: 29.06.2014, 16:09
  5. Tabelle als Übergabeparameter von Subroutine?
    Von screwdriver im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 09.01.2009, 16:45

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests